Port to 26.2

This commit is contained in:
Alexander Medvedev 2026-06-20 20:07:31 +02:00
parent 8ce76261ac
commit 23e7992b2d
149 changed files with 127521 additions and 5993680 deletions

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"armor":{"id":0,"default_value":0.0},"armor_toughness":{"id":1,"default_value":0.0},"attack_damage":{"id":2,"default_value":2.0},"attack_knockback":{"id":3,"default_value":0.0},"attack_speed":{"id":4,"default_value":4.0},"block_break_speed":{"id":5,"default_value":1.0},"block_interaction_range":{"id":6,"default_value":4.5},"burning_time":{"id":7,"default_value":1.0},"camera_distance":{"id":8,"default_value":4.0},"explosion_knockback_resistance":{"id":9,"default_value":0.0},"entity_interaction_range":{"id":10,"default_value":3.0},"fall_damage_multiplier":{"id":11,"default_value":1.0},"flying_speed":{"id":12,"default_value":0.4},"follow_range":{"id":13,"default_value":32.0},"gravity":{"id":14,"default_value":0.08},"jump_strength":{"id":15,"default_value":0.41999998688697815},"knockback_resistance":{"id":16,"default_value":0.0},"luck":{"id":17,"default_value":0.0},"max_absorption":{"id":18,"default_value":0.0},"max_health":{"id":19,"default_value":20.0},"mining_efficiency":{"id":20,"default_value":0.0},"movement_efficiency":{"id":21,"default_value":0.0},"movement_speed":{"id":22,"default_value":0.7},"oxygen_bonus":{"id":23,"default_value":0.0},"safe_fall_distance":{"id":24,"default_value":3.0},"scale":{"id":25,"default_value":1.0},"sneaking_speed":{"id":26,"default_value":0.3},"spawn_reinforcements":{"id":27,"default_value":0.0},"step_height":{"id":28,"default_value":0.6},"submerged_mining_speed":{"id":29,"default_value":0.2},"sweeping_damage_ratio":{"id":30,"default_value":0.0},"tempt_range":{"id":31,"default_value":10.0},"water_movement_efficiency":{"id":32,"default_value":0.0},"waypoint_transmit_range":{"id":33,"default_value":0.0},"waypoint_receive_range":{"id":34,"default_value":0.0}} {"air_drag_modifier":{"id":0,"default_value":1.0},"armor":{"id":1,"default_value":0.0},"armor_toughness":{"id":2,"default_value":0.0},"attack_damage":{"id":3,"default_value":2.0},"attack_knockback":{"id":4,"default_value":0.0},"attack_speed":{"id":5,"default_value":4.0},"below_name_distance":{"id":6,"default_value":10.0},"block_break_speed":{"id":7,"default_value":1.0},"block_interaction_range":{"id":8,"default_value":4.5},"bounciness":{"id":9,"default_value":0.0},"burning_time":{"id":10,"default_value":1.0},"camera_distance":{"id":11,"default_value":4.0},"explosion_knockback_resistance":{"id":12,"default_value":0.0},"entity_interaction_range":{"id":13,"default_value":3.0},"fall_damage_multiplier":{"id":14,"default_value":1.0},"flying_speed":{"id":15,"default_value":0.4},"follow_range":{"id":16,"default_value":32.0},"friction_modifier":{"id":17,"default_value":1.0},"gravity":{"id":18,"default_value":0.08},"jump_strength":{"id":19,"default_value":0.41999998688697815},"knockback_resistance":{"id":20,"default_value":0.0},"luck":{"id":21,"default_value":0.0},"max_absorption":{"id":22,"default_value":0.0},"max_health":{"id":23,"default_value":20.0},"mining_efficiency":{"id":24,"default_value":0.0},"movement_efficiency":{"id":25,"default_value":0.0},"movement_speed":{"id":26,"default_value":0.7},"name_tag_distance":{"id":27,"default_value":64.0},"oxygen_bonus":{"id":28,"default_value":0.0},"safe_fall_distance":{"id":29,"default_value":3.0},"scale":{"id":30,"default_value":1.0},"sneaking_speed":{"id":31,"default_value":0.3},"spawn_reinforcements":{"id":32,"default_value":0.0},"step_height":{"id":33,"default_value":0.6},"submerged_mining_speed":{"id":34,"default_value":0.2},"sweeping_damage_ratio":{"id":35,"default_value":0.0},"tempt_range":{"id":36,"default_value":10.0},"water_movement_efficiency":{"id":37,"default_value":0.0},"waypoint_transmit_range":{"id":38,"default_value":0.0},"waypoint_receive_range":{"id":39,"default_value":0.0}}

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"578":0.85,"424":0.65,"52":0.3,"268":0.65,"259":0.3,"262":0.3,"249":0.65,"1374":0.3,"188":0.3,"231":0.65,"51":0.3,"1289":0.3,"190":0.3,"244":0.65,"527":0.65,"525":0.65,"1229":0.65,"267":0.3,"143":0.3,"1086":1.0,"1110":0.3,"255":0.5,"239":0.65,"57":0.3,"528":0.65,"184":0.3,"1108":0.3,"261":0.3,"411":0.5,"257":0.5,"235":0.65,"242":0.65,"204":0.3,"186":0.3,"953":0.65,"894":0.65,"211":0.3,"210":0.3,"183":0.3,"53":0.3,"50":0.3,"205":0.65,"238":0.65,"1286":0.3,"245":0.85,"1288":0.65,"232":0.65,"388":0.85,"251":0.65,"206":0.85,"1103":0.85,"203":0.65,"410":0.65,"212":0.65,"185":0.3,"258":0.3,"209":0.3,"1378":0.65,"389":0.85,"1107":0.5,"530":0.65,"243":0.65,"187":0.3,"247":0.65,"505":0.85,"192":0.5,"240":0.65,"1375":0.3,"1228":0.65,"237":0.65,"56":0.3,"55":0.3,"1120":0.65,"54":0.3,"189":0.3,"256":0.5,"1242":1.0,"1287":0.3,"266":0.65,"1230":0.85,"358":0.65,"253":0.65,"229":0.65,"241":0.65,"248":0.65,"390":0.65,"252":0.65,"236":0.65,"246":0.85,"49":0.3,"1028":0.5,"250":0.65,"341":0.5,"529":0.5,"1066":0.65,"182":0.3,"254":0.5,"342":0.3,"269":0.3,"264":0.3,"412":0.5,"526":0.65,"234":0.65,"265":0.3,"577":0.85,"954":0.85,"263":0.65,"1109":0.3,"233":0.65,"208":0.3,"952":0.3,"191":0.3,"357":0.65,"202":0.3,"260":0.3} {"278":0.65,"1271":1.0,"81":0.3,"260":0.65,"1318":0.3,"258":0.65,"282":0.5,"369":0.3,"239":0.65,"385":0.65,"261":0.65,"552":0.65,"237":0.3,"296":0.3,"283":0.5,"1056":0.5,"217":0.3,"209":0.3,"80":0.3,"268":0.65,"291":0.3,"368":0.5,"384":0.65,"1114":1.0,"259":0.65,"1317":0.65,"1094":0.65,"275":0.65,"556":0.5,"285":0.3,"277":0.65,"262":0.65,"1131":0.85,"77":0.3,"604":0.85,"280":0.65,"213":0.3,"284":0.5,"267":0.65,"76":0.3,"605":0.85,"211":0.3,"265":0.65,"236":0.3,"289":0.3,"84":0.3,"272":0.85,"274":0.65,"233":0.85,"214":0.3,"271":0.65,"273":0.85,"292":0.3,"437":0.65,"1259":0.85,"288":0.3,"1138":0.3,"553":0.65,"555":0.65,"266":0.65,"82":0.3,"263":0.65,"1257":0.65,"1316":0.3,"295":0.65,"294":0.3,"1136":0.3,"416":0.85,"219":0.5,"1258":0.65,"980":0.65,"1137":0.3,"981":0.85,"281":0.5,"1135":0.5,"230":0.65,"212":0.3,"415":0.85,"279":0.65,"83":0.3,"210":0.3,"1315":0.3,"79":0.3,"287":0.3,"451":0.65,"229":0.3,"438":0.5,"270":0.65,"557":0.65,"293":0.65,"232":0.65,"286":0.3,"235":0.3,"238":0.3,"231":0.3,"269":0.65,"215":0.3,"216":0.3,"1148":0.65,"78":0.3,"439":0.5,"276":0.65,"554":0.65,"921":0.65,"979":0.3,"1405":0.3,"264":0.65,"256":0.65,"1408":0.65,"170":0.3,"1404":0.3,"417":0.65,"532":0.85,"218":0.3,"290":0.65}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"minecraft:custom_data":0,"minecraft:max_stack_size":1,"minecraft:max_damage":2,"minecraft:damage":3,"minecraft:unbreakable":4,"minecraft:use_effects":5,"minecraft:custom_name":6,"minecraft:minimum_attack_charge":7,"minecraft:damage_type":8,"minecraft:item_name":9,"minecraft:item_model":10,"minecraft:lore":11,"minecraft:rarity":12,"minecraft:enchantments":13,"minecraft:can_place_on":14,"minecraft:can_break":15,"minecraft:attribute_modifiers":16,"minecraft:custom_model_data":17,"minecraft:tooltip_display":18,"minecraft:repair_cost":19,"minecraft:creative_slot_lock":20,"minecraft:enchantment_glint_override":21,"minecraft:intangible_projectile":22,"minecraft:food":23,"minecraft:consumable":24,"minecraft:use_remainder":25,"minecraft:use_cooldown":26,"minecraft:damage_resistant":27,"minecraft:tool":28,"minecraft:weapon":29,"minecraft:attack_range":30,"minecraft:enchantable":31,"minecraft:equippable":32,"minecraft:repairable":33,"minecraft:glider":34,"minecraft:tooltip_style":35,"minecraft:death_protection":36,"minecraft:blocks_attacks":37,"minecraft:piercing_weapon":38,"minecraft:kinetic_weapon":39,"minecraft:swing_animation":40,"minecraft:additional_trade_cost":41,"minecraft:stored_enchantments":42,"minecraft:dye":43,"minecraft:dyed_color":44,"minecraft:map_color":45,"minecraft:map_id":46,"minecraft:map_decorations":47,"minecraft:map_post_processing":48,"minecraft:charged_projectiles":49,"minecraft:bundle_contents":50,"minecraft:potion_contents":51,"minecraft:potion_duration_scale":52,"minecraft:suspicious_stew_effects":53,"minecraft:writable_book_content":54,"minecraft:written_book_content":55,"minecraft:trim":56,"minecraft:debug_stick_state":57,"minecraft:entity_data":58,"minecraft:bucket_entity_data":59,"minecraft:block_entity_data":60,"minecraft:instrument":61,"minecraft:provides_trim_material":62,"minecraft:ominous_bottle_amplifier":63,"minecraft:jukebox_playable":64,"minecraft:provides_banner_patterns":65,"minecraft:recipes":66,"minecraft:lodestone_tracker":67,"minecraft:firework_explosion":68,"minecraft:fireworks":69,"minecraft:profile":70,"minecraft:note_block_sound":71,"minecraft:banner_patterns":72,"minecraft:base_color":73,"minecraft:pot_decorations":74,"minecraft:container":75,"minecraft:block_state":76,"minecraft:bees":77,"minecraft:lock":78,"minecraft:container_loot":79,"minecraft:break_sound":80,"minecraft:villager/variant":81,"minecraft:wolf/variant":82,"minecraft:wolf/sound_variant":83,"minecraft:wolf/collar":84,"minecraft:fox/variant":85,"minecraft:salmon/size":86,"minecraft:parrot/variant":87,"minecraft:tropical_fish/pattern":88,"minecraft:tropical_fish/base_color":89,"minecraft:tropical_fish/pattern_color":90,"minecraft:mooshroom/variant":91,"minecraft:rabbit/variant":92,"minecraft:pig/variant":93,"minecraft:pig/sound_variant":94,"minecraft:cow/variant":95,"minecraft:cow/sound_variant":96,"minecraft:chicken/variant":97,"minecraft:chicken/sound_variant":98,"minecraft:zombie_nautilus/variant":99,"minecraft:frog/variant":100,"minecraft:horse/variant":101,"minecraft:painting/variant":102,"minecraft:llama/variant":103,"minecraft:axolotl/variant":104,"minecraft:cat/variant":105,"minecraft:cat/sound_variant":106,"minecraft:cat/collar":107,"minecraft:sheep/color":108,"minecraft:shulker/color":109} {"minecraft:custom_data":0,"minecraft:max_stack_size":1,"minecraft:max_damage":2,"minecraft:damage":3,"minecraft:unbreakable":4,"minecraft:use_effects":5,"minecraft:custom_name":6,"minecraft:minimum_attack_charge":7,"minecraft:damage_type":8,"minecraft:item_name":9,"minecraft:item_model":10,"minecraft:lore":11,"minecraft:rarity":12,"minecraft:enchantments":13,"minecraft:can_place_on":14,"minecraft:can_break":15,"minecraft:attribute_modifiers":16,"minecraft:custom_model_data":17,"minecraft:tooltip_display":18,"minecraft:repair_cost":19,"minecraft:creative_slot_lock":20,"minecraft:enchantment_glint_override":21,"minecraft:intangible_projectile":22,"minecraft:food":23,"minecraft:consumable":24,"minecraft:use_remainder":25,"minecraft:use_cooldown":26,"minecraft:damage_resistant":27,"minecraft:tool":28,"minecraft:weapon":29,"minecraft:attack_range":30,"minecraft:enchantable":31,"minecraft:equippable":32,"minecraft:repairable":33,"minecraft:glider":34,"minecraft:tooltip_style":35,"minecraft:death_protection":36,"minecraft:blocks_attacks":37,"minecraft:piercing_weapon":38,"minecraft:kinetic_weapon":39,"minecraft:swing_animation":40,"minecraft:additional_trade_cost":41,"minecraft:stored_enchantments":42,"minecraft:dye":43,"minecraft:dyed_color":44,"minecraft:map_color":45,"minecraft:map_id":46,"minecraft:map_decorations":47,"minecraft:map_post_processing":48,"minecraft:charged_projectiles":49,"minecraft:bundle_contents":50,"minecraft:potion_contents":51,"minecraft:potion_duration_scale":52,"minecraft:suspicious_stew_effects":53,"minecraft:writable_book_content":54,"minecraft:written_book_content":55,"minecraft:trim":56,"minecraft:debug_stick_state":57,"minecraft:entity_data":58,"minecraft:bucket_entity_data":59,"minecraft:block_entity_data":60,"minecraft:instrument":61,"minecraft:provides_trim_material":62,"minecraft:ominous_bottle_amplifier":63,"minecraft:jukebox_playable":64,"minecraft:provides_banner_patterns":65,"minecraft:recipes":66,"minecraft:lodestone_tracker":67,"minecraft:firework_explosion":68,"minecraft:fireworks":69,"minecraft:profile":70,"minecraft:note_block_sound":71,"minecraft:banner_patterns":72,"minecraft:base_color":73,"minecraft:pot_decorations":74,"minecraft:container":75,"minecraft:block_state":76,"minecraft:bees":77,"minecraft:sulfur_cube_content":78,"minecraft:lock":79,"minecraft:container_loot":80,"minecraft:break_sound":81,"minecraft:villager/variant":82,"minecraft:wolf/variant":83,"minecraft:wolf/sound_variant":84,"minecraft:wolf/collar":85,"minecraft:fox/variant":86,"minecraft:salmon/size":87,"minecraft:parrot/variant":88,"minecraft:tropical_fish/pattern":89,"minecraft:tropical_fish/base_color":90,"minecraft:tropical_fish/pattern_color":91,"minecraft:mooshroom/variant":92,"minecraft:rabbit/variant":93,"minecraft:pig/variant":94,"minecraft:pig/sound_variant":95,"minecraft:cow/variant":96,"minecraft:cow/sound_variant":97,"minecraft:chicken/variant":98,"minecraft:chicken/sound_variant":99,"minecraft:zombie_nautilus/variant":100,"minecraft:frog/variant":101,"minecraft:horse/variant":102,"minecraft:painting/variant":103,"minecraft:llama/variant":104,"minecraft:axolotl/variant":105,"minecraft:cat/variant":106,"minecraft:cat/sound_variant":107,"minecraft:cat/collar":108,"minecraft:sheep/color":109,"minecraft:shulker/color":110}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"JUMP":1,"KINETIC_HIT":2,"DEATH":3,"START_ATTACKING":4,"STOP_ATTACKING":5,"TAMING_FAILED":6,"TAMING_SUCCEEDED":7,"SHAKE_WETNESS":8,"USE_ITEM_COMPLETE":9,"EAT_GRASS":10,"OFFER_FLOWER":11,"LOVE_HEARTS":12,"VILLAGER_ANGRY":13,"VILLAGER_HAPPY":14,"WITCH_HAT_MAGIC":15,"ZOMBIE_CONVERTING":16,"FIREWORKS_EXPLODE":17,"IN_LOVE_HEARTS":18,"SQUID_ANIM_SYNCH":19,"SILVERFISH_MERGE_ANIM":20,"GUARDIAN_ATTACK_SOUND":21,"REDUCED_DEBUG_INFO":22,"FULL_DEBUG_INFO":23,"PERMISSION_LEVEL_ALL":24,"PERMISSION_LEVEL_MODERATORS":25,"PERMISSION_LEVEL_GAMEMASTERS":26,"PERMISSION_LEVEL_ADMINS":27,"PERMISSION_LEVEL_OWNERS":28,"FISHING_ROD_REEL_IN":31,"ARMORSTAND_WOBBLE":32,"STOP_OFFER_FLOWER":34,"PROTECTED_FROM_DEATH":35,"DOLPHIN_LOOKING_FOR_TREASURE":38,"RAVAGER_STUNNED":39,"TRUSTING_FAILED":40,"TRUSTING_SUCCEEDED":41,"VILLAGER_SWEAT":42,"FOX_EAT":45,"TELEPORT":46,"MAINHAND_BREAK":47,"OFFHAND_BREAK":48,"HEAD_BREAK":49,"CHEST_BREAK":50,"LEGS_BREAK":51,"FEET_BREAK":52,"HONEY_SLIDE":53,"HONEY_JUMP":54,"SWAP_HANDS":55,"CANCEL_SHAKE_WETNESS":56,"START_RAM":58,"END_RAM":59,"POOF":60,"TENDRILS_SHIVER":61,"SONIC_CHARGE":62,"SNIFFER_DIGGING_SOUND":63,"ARMADILLO_PEEK":64,"BODY_BREAK":65,"SHAKE":66,"DROWN_PARTICLES":67,"SADDLE_BREAK":68,"RAVAGER_ROARED":69} {"JUMP":1,"KINETIC_HIT":2,"DEATH":3,"START_ATTACKING":4,"STOP_ATTACKING":5,"TAMING_FAILED":6,"TAMING_SUCCEEDED":7,"SHAKE_WETNESS":8,"USE_ITEM_COMPLETE":9,"EAT_GRASS":10,"OFFER_FLOWER":11,"LOVE_HEARTS":12,"VILLAGER_ANGRY":13,"VILLAGER_HAPPY":14,"WITCH_HAT_MAGIC":15,"ZOMBIE_CONVERTING":16,"FIREWORKS_EXPLODE":17,"IN_LOVE_HEARTS":18,"SQUID_ANIM_SYNCH":19,"SILVERFISH_MERGE_ANIM":20,"GUARDIAN_ATTACK_SOUND":21,"REDUCED_DEBUG_INFO":22,"FULL_DEBUG_INFO":23,"PERMISSION_LEVEL_ALL":24,"PERMISSION_LEVEL_MODERATORS":25,"PERMISSION_LEVEL_GAMEMASTERS":26,"PERMISSION_LEVEL_ADMINS":27,"PERMISSION_LEVEL_OWNERS":28,"FISHING_ROD_REEL_IN":31,"ARMORSTAND_WOBBLE":32,"STOP_OFFER_FLOWER":34,"PROTECTED_FROM_DEATH":35,"DOLPHIN_LOOKING_FOR_TREASURE":38,"RAVAGER_STUNNED":39,"TRUSTING_FAILED":40,"TRUSTING_SUCCEEDED":41,"VILLAGER_SWEAT":42,"FOX_EAT":45,"TELEPORT":46,"MAINHAND_BREAK":47,"OFFHAND_BREAK":48,"HEAD_BREAK":49,"CHEST_BREAK":50,"LEGS_BREAK":51,"FEET_BREAK":52,"HONEY_SLIDE":53,"HONEY_JUMP":54,"SWAP_HANDS":55,"CANCEL_SHAKE_WETNESS":56,"START_RAM":58,"END_RAM":59,"POOF":60,"TENDRILS_SHIVER":61,"SONIC_CHARGE":62,"SNIFFER_DIGGING_SOUND":63,"ARMADILLO_PEEK":64,"BODY_BREAK":65,"SHAKE":66,"DROWN_PARTICLES":67,"SADDLE_BREAK":68,"RAVAGER_ROARED":69,"TNT_PRIME":70}

View File

@ -1 +1 @@
{"241":433,"53":417,"240":432,"253":922,"239":431,"341":440,"238":430,"49":413,"249":437,"270":793,"229":423,"56":420,"245":412,"251":920,"55":419,"231":1165,"232":1166,"206":1149,"236":428,"235":427,"243":435,"205":1148,"54":418,"233":425,"248":438,"244":436,"250":919,"230":424,"203":422,"242":434,"207":439,"50":414,"234":426,"51":415,"57":421,"237":429,"252":921,"52":416} {"232":1176,"84":421,"368":440,"264":429,"259":1194,"257":424,"270":435,"79":416,"276":437,"258":1193,"268":433,"272":412,"76":413,"83":420,"271":436,"77":414,"261":426,"265":430,"230":422,"275":438,"297":793,"266":431,"81":418,"234":439,"82":419,"280":922,"269":434,"279":921,"256":423,"262":427,"267":432,"80":417,"277":919,"78":415,"278":920,"233":1177,"263":428,"260":425}

View File

@ -1 +1 @@
{"1015":20000,"83":16000,"1117":2400,"897":1600,"898":1600,"141":300,"178":300,"154":300,"165":300,"140":300,"177":300,"155":300,"166":300,"134":300,"171":300,"148":300,"159":300,"138":300,"175":300,"152":300,"163":300,"136":300,"173":300,"150":300,"161":300,"137":300,"174":300,"151":300,"162":300,"135":300,"172":300,"149":300,"160":300,"142":300,"179":300,"156":300,"167":300,"139":300,"176":300,"153":300,"164":300,"147":300,"170":300,"36":300,"37":300,"38":300,"39":300,"40":300,"42":300,"43":300,"44":300,"45":300,"41":300,"48":300,"442":300,"443":300,"444":300,"445":300,"446":300,"448":300,"449":300,"450":300,"451":300,"447":300,"452":300,"271":150,"272":150,"273":150,"274":150,"275":150,"277":150,"278":150,"279":150,"280":150,"276":150,"281":150,"806":300,"804":300,"808":300,"809":300,"805":300,"802":300,"803":300,"810":300,"811":300,"807":300,"768":300,"769":300,"770":300,"771":300,"772":300,"774":300,"775":300,"776":300,"777":300,"773":300,"306":300,"307":300,"308":300,"309":300,"311":300,"312":300,"313":300,"314":300,"315":300,"316":300,"345":300,"349":300,"351":300,"352":300,"346":300,"347":300,"348":300,"353":300,"354":300,"350":300,"826":300,"824":300,"828":300,"829":300,"825":300,"822":300,"823":300,"830":300,"831":300,"827":300,"749":300,"318":300,"319":300,"731":300,"344":300,"332":300,"746":300,"333":300,"742":300,"1267":300,"1268":300,"1269":300,"1270":300,"1271":300,"1272":300,"1273":300,"1274":300,"1275":300,"1276":300,"1277":300,"1278":300,"1279":300,"1280":300,"1281":300,"1282":300,"895":300,"1054":300,"336":300,"989":200,"990":200,"991":200,"993":200,"992":200,"995":200,"996":200,"997":200,"998":200,"994":200,"1001":800,"1002":800,"1003":800,"1005":800,"1006":800,"1004":800,"1007":800,"1008":800,"1009":800,"1010":800,"913":200,"912":200,"1297":200,"916":200,"915":200,"914":200,"781":200,"782":200,"783":200,"784":200,"785":200,"787":200,"788":200,"789":200,"790":200,"786":200,"864":1200,"866":1200,"868":1200,"870":1200,"872":1200,"876":1200,"878":1200,"880":1200,"882":1200,"874":1200,"865":1200,"867":1200,"869":1200,"871":1200,"873":1200,"877":1200,"879":1200,"881":1200,"883":1200,"875":1200,"213":100,"214":100,"215":100,"216":100,"217":100,"218":100,"219":100,"220":100,"221":100,"222":100,"223":100,"224":100,"225":100,"226":100,"227":100,"228":100,"752":100,"753":100,"754":100,"755":100,"756":100,"758":100,"759":100,"760":100,"761":100,"757":100,"947":100,"49":100,"50":100,"51":100,"52":100,"53":100,"55":100,"56":100,"205":100,"206":100,"57":100,"54":100,"893":100,"506":67,"507":67,"508":67,"509":67,"510":67,"511":67,"512":67,"513":67,"514":67,"515":67,"516":67,"517":67,"518":67,"519":67,"520":67,"521":67,"1028":4001,"1340":300,"270":50,"207":100,"209":100,"210":100,"717":50,"1342":300,"1355":300,"1358":300,"1359":300,"1361":300,"1354":300,"143":300,"261":100} {"1042":20000,"110":16000,"1145":2400,"924":1600,"925":1600,"168":300,"205":300,"181":300,"192":300,"167":300,"204":300,"182":300,"193":300,"161":300,"198":300,"175":300,"186":300,"165":300,"202":300,"179":300,"190":300,"163":300,"200":300,"177":300,"188":300,"164":300,"201":300,"178":300,"189":300,"162":300,"199":300,"176":300,"187":300,"169":300,"206":300,"183":300,"194":300,"166":300,"203":300,"180":300,"191":300,"174":300,"197":300,"63":300,"64":300,"65":300,"66":300,"67":300,"69":300,"70":300,"71":300,"72":300,"68":300,"75":300,"469":300,"470":300,"471":300,"472":300,"473":300,"475":300,"476":300,"477":300,"478":300,"474":300,"479":300,"298":150,"299":150,"300":150,"301":150,"302":150,"304":150,"305":150,"306":150,"307":150,"303":150,"308":150,"833":300,"831":300,"835":300,"836":300,"832":300,"829":300,"830":300,"837":300,"838":300,"834":300,"795":300,"796":300,"797":300,"798":300,"799":300,"801":300,"802":300,"803":300,"804":300,"800":300,"333":300,"334":300,"335":300,"336":300,"338":300,"339":300,"340":300,"341":300,"342":300,"343":300,"372":300,"376":300,"378":300,"379":300,"373":300,"374":300,"375":300,"380":300,"381":300,"377":300,"853":300,"851":300,"855":300,"856":300,"852":300,"849":300,"850":300,"857":300,"858":300,"854":300,"776":300,"345":300,"346":300,"758":300,"371":300,"359":300,"773":300,"360":300,"769":300,"1296":300,"1297":300,"1298":300,"1299":300,"1300":300,"1301":300,"1302":300,"1303":300,"1304":300,"1305":300,"1306":300,"1307":300,"1308":300,"1309":300,"1310":300,"1311":300,"922":300,"1082":300,"363":300,"1016":200,"1017":200,"1018":200,"1020":200,"1019":200,"1022":200,"1023":200,"1024":200,"1025":200,"1021":200,"1028":800,"1029":800,"1030":800,"1032":800,"1033":800,"1031":800,"1034":800,"1035":800,"1036":800,"1037":800,"940":200,"939":200,"1326":200,"943":200,"942":200,"941":200,"808":200,"809":200,"810":200,"811":200,"812":200,"814":200,"815":200,"816":200,"817":200,"813":200,"891":1200,"893":1200,"895":1200,"897":1200,"899":1200,"903":1200,"905":1200,"907":1200,"909":1200,"901":1200,"892":1200,"894":1200,"896":1200,"898":1200,"900":1200,"904":1200,"906":1200,"908":1200,"910":1200,"902":1200,"240":100,"241":100,"242":100,"243":100,"244":100,"245":100,"246":100,"247":100,"248":100,"249":100,"250":100,"251":100,"252":100,"253":100,"254":100,"255":100,"779":100,"780":100,"781":100,"782":100,"783":100,"785":100,"786":100,"787":100,"788":100,"784":100,"974":100,"76":100,"77":100,"78":100,"79":100,"80":100,"82":100,"83":100,"232":100,"233":100,"84":100,"81":100,"920":100,"533":67,"534":67,"535":67,"536":67,"537":67,"538":67,"539":67,"540":67,"541":67,"542":67,"543":67,"544":67,"545":67,"546":67,"547":67,"548":67,"1056":4001,"1370":300,"297":50,"234":100,"236":100,"237":100,"744":50,"1372":300,"1385":300,"1388":300,"1389":300,"1391":300,"1384":300,"170":300,"288":100}

View File

@ -1 +1 @@
["block_activate","block_attach","block_change","block_close","block_deactivate","block_destroy","block_detach","block_open","block_place","container_close","container_open","drink","eat","elytra_glide","entity_damage","entity_die","entity_dismount","entity_interact","entity_mount","entity_place","entity_action","equip","explode","flap","fluid_pickup","fluid_place","hit_ground","instrument_play","item_interact_finish","item_interact_start","jukebox_play","jukebox_stop_play","lightning_strike","note_block_play","prime_fuse","projectile_land","projectile_shoot","sculk_sensor_tendrils_clicking","shear","shriek","splash","step","swim","teleport","unequip","resonate_1","resonate_2","resonate_3","resonate_4","resonate_5","resonate_6","resonate_7","resonate_8","resonate_9","resonate_10","resonate_11","resonate_12","resonate_13","resonate_14","resonate_15"] ["block_activate","block_attach","block_change","block_close","block_deactivate","block_destroy","block_detach","block_open","block_place","bounce","container_close","container_open","drink","eat","elytra_glide","entity_damage","entity_die","entity_dismount","entity_interact","entity_mount","entity_place","entity_action","equip","explode","flap","fluid_pickup","fluid_place","hit_ground","instrument_play","item_interact_finish","item_interact_start","jukebox_play","jukebox_stop_play","lightning_strike","note_block_play","prime_fuse","projectile_land","projectile_shoot","sculk_sensor_tendrils_clicking","shear","shriek","splash","step","swim","teleport","unequip","resonate_1","resonate_2","resonate_3","resonate_4","resonate_5","resonate_6","resonate_7","resonate_8","resonate_9","resonate_10","resonate_11","resonate_12","resonate_13","resonate_14","resonate_15"]

View File

@ -1 +1 @@
{"advance_time":true,"advance_weather":true,"allow_entering_nether_using_portals":true,"block_drops":true,"block_explosion_drop_decay":true,"command_blocks_work":true,"command_block_output":true,"drowning_damage":true,"elytra_movement_check":true,"ender_pearls_vanish_on_death":true,"entity_drops":true,"fall_damage":true,"fire_damage":true,"fire_spread_radius_around_player":128,"forgive_dead_players":true,"freeze_damage":true,"global_sound_events":true,"immediate_respawn":false,"keep_inventory":false,"lava_source_conversion":false,"limited_crafting":false,"locator_bar":true,"log_admin_commands":true,"max_block_modifications":32768,"max_command_forks":65536,"max_command_sequence_length":65536,"max_entity_cramming":24,"max_minecart_speed":8,"max_snow_accumulation_height":1,"mob_drops":true,"mob_explosion_drop_decay":true,"mob_griefing":true,"natural_health_regeneration":true,"player_movement_check":true,"players_nether_portal_creative_delay":0,"players_nether_portal_default_delay":80,"players_sleeping_percentage":100,"projectiles_can_break_blocks":true,"pvp":true,"raids":true,"random_tick_speed":3,"reduced_debug_info":false,"respawn_radius":10,"send_command_feedback":true,"show_advancement_messages":true,"show_death_messages":true,"spawner_blocks_work":true,"spawn_mobs":true,"spawn_monsters":true,"spawn_patrols":true,"spawn_phantoms":true,"spawn_wandering_traders":true,"spawn_wardens":true,"spectators_generate_chunks":true,"spread_vines":true,"tnt_explodes":true,"tnt_explosion_drop_decay":false,"universal_anger":false,"water_source_conversion":true} {"advance_time":true,"advance_weather":true,"allow_entering_nether_using_portals":true,"block_drops":true,"block_explosion_drop_decay":true,"command_blocks_work":true,"command_block_output":true,"drowning_damage":true,"elytra_movement_check":true,"ender_pearls_vanish_on_death":true,"entity_drops":true,"fall_damage":true,"fire_damage":true,"fire_spread_radius_around_player":{"default":128,"min":-1,"max":2147483647},"forgive_dead_players":true,"freeze_damage":true,"global_sound_events":true,"immediate_respawn":false,"keep_inventory":false,"lava_source_conversion":false,"limited_crafting":false,"locator_bar":true,"log_admin_commands":true,"max_block_modifications":{"default":32768,"min":1,"max":2147483647},"max_command_forks":{"default":65536,"min":0,"max":2147483647},"max_command_sequence_length":{"default":65536,"min":0,"max":2147483647},"max_entity_cramming":{"default":24,"min":0,"max":2147483647},"max_minecart_speed":{"default":8,"min":1,"max":1000},"max_snow_accumulation_height":{"default":1,"min":0,"max":8},"mob_drops":true,"mob_explosion_drop_decay":true,"mob_griefing":true,"natural_health_regeneration":true,"player_movement_check":true,"players_nether_portal_creative_delay":{"default":0,"min":0,"max":2147483647},"players_nether_portal_default_delay":{"default":80,"min":0,"max":2147483647},"players_sleeping_percentage":{"default":100,"min":0,"max":2147483647},"projectiles_can_break_blocks":true,"pvp":true,"raids":true,"random_tick_speed":{"default":3,"min":0,"max":2147483647},"reduced_debug_info":false,"respawn_radius":{"default":10,"min":0,"max":2147483647},"send_command_feedback":true,"show_advancement_messages":true,"show_death_messages":true,"spawner_blocks_work":true,"spawn_mobs":true,"spawn_monsters":true,"spawn_patrols":true,"spawn_phantoms":true,"spawn_wandering_traders":true,"spawn_wardens":true,"spectators_generate_chunks":true,"spread_vines":true,"tnt_explodes":true,"tnt_explosion_drop_decay":false,"universal_anger":false,"water_source_conversion":true}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"11":0,"13":1,"5":2,"blocks":3,"cat":4,"chirp":5,"creator":6,"creator_music_box":7,"far":8,"lava_chicken":9,"mall":10,"mellohi":11,"otherside":12,"pigstep":13,"precipice":14,"relic":15,"stal":16,"strad":17,"tears":18,"wait":19,"ward":20} {"11":0,"13":1,"5":2,"blocks":3,"bounce":4,"cat":5,"chirp":6,"creator":7,"creator_music_box":8,"far":9,"lava_chicken":10,"mall":11,"mellohi":12,"otherside":13,"pigstep":14,"precipice":15,"relic":16,"stal":17,"strad":18,"tears":19,"wait":20,"ward":21}

View File

@ -0,0 +1 @@
{"byte":0,"int":1,"long":2,"float":3,"string":4,"component":5,"optional_component":6,"item_stack":7,"block_state":14,"optional_block_state":15,"boolean":8,"particle":16,"particles":17,"rotations":9,"block_pos":10,"optional_block_pos":11,"direction":12,"optional_living_entity_reference":13,"optional_global_pos":33,"villager_data":18,"optional_unsigned_int":19,"pose":20,"cat_variant":21,"cat_sound_variant":22,"chicken_variant":30,"chicken_sound_variant":31,"cow_variant":23,"cow_sound_variant":24,"wolf_variant":25,"wolf_sound_variant":26,"frog_variant":27,"pig_variant":28,"pig_sound_variant":29,"zombie_nautilus_variant":32,"painting_variant":34,"armadillo_state":36,"sniffer_state":35,"weathering_copper_state":38,"copper_golem_state":37,"vector3":39,"quaternion":40,"resolvable_profile":41,"humanoid_arm":42}

View File

@ -1 +1 @@
{"minecraft:aquifer_barrier":{"firstOctave":-3,"amplitudes":[1.0]},"minecraft:aquifer_fluid_level_floodedness":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:aquifer_fluid_level_spread":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:aquifer_lava":{"firstOctave":-1,"amplitudes":[1.0]},"minecraft:badlands_pillar":{"firstOctave":-2,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:badlands_pillar_roof":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:badlands_surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:calcite":{"firstOctave":-9,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:cave_cheese":{"firstOctave":-8,"amplitudes":[0.5,1.0,2.0,1.0,2.0,1.0,0.0,2.0,0.0]},"minecraft:cave_entrance":{"firstOctave":-7,"amplitudes":[0.4,0.5,1.0]},"minecraft:cave_layer":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:clay_bands_offset":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:continentalness":{"firstOctave":-9,"amplitudes":[1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0]},"minecraft:continentalness_large":{"firstOctave":-11,"amplitudes":[1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0]},"minecraft:erosion":{"firstOctave":-9,"amplitudes":[1.0,1.0,0.0,1.0,1.0]},"minecraft:erosion_large":{"firstOctave":-11,"amplitudes":[1.0,1.0,0.0,1.0,1.0]},"minecraft:gravel":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:gravel_layer":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:ice":{"firstOctave":-4,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:iceberg_pillar":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:iceberg_pillar_roof":{"firstOctave":-3,"amplitudes":[1.0]},"minecraft:iceberg_surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:jagged":{"firstOctave":-16,"amplitudes":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]},"minecraft:nether/temperature":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:nether/vegetation":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:nether_state_selector":{"firstOctave":-4,"amplitudes":[1.0]},"minecraft:nether_wart":{"firstOctave":-3,"amplitudes":[1.0,0.0,0.0,0.9]},"minecraft:netherrack":{"firstOctave":-3,"amplitudes":[1.0,0.0,0.0,0.35]},"minecraft:noodle":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:noodle_ridge_a":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:noodle_ridge_b":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:noodle_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:offset":{"firstOctave":-3,"amplitudes":[1.0,1.0,1.0,0.0]},"minecraft:ore_gap":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:ore_vein_a":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:ore_vein_b":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:ore_veininess":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:packed_ice":{"firstOctave":-7,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:patch":{"firstOctave":-5,"amplitudes":[1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:pillar":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:pillar_rareness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:pillar_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:powder_snow":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:ridge":{"firstOctave":-7,"amplitudes":[1.0,2.0,1.0,0.0,0.0,0.0]},"minecraft:soul_sand_layer":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:spaghetti_2d":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_2d_elevation":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:spaghetti_2d_modulator":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_2d_thickness":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_3d_1":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_3d_2":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_3d_rarity":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_3d_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:spaghetti_roughness":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:spaghetti_roughness_modulator":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:surface_secondary":{"firstOctave":-6,"amplitudes":[1.0,1.0,0.0,1.0]},"minecraft:surface_swamp":{"firstOctave":-2,"amplitudes":[1.0]},"minecraft:temperature":{"firstOctave":-10,"amplitudes":[1.5,0.0,1.0,0.0,0.0,0.0]},"minecraft:temperature_large":{"firstOctave":-12,"amplitudes":[1.5,0.0,1.0,0.0,0.0,0.0]},"minecraft:vegetation":{"firstOctave":-8,"amplitudes":[1.0,1.0,0.0,0.0,0.0,0.0]},"minecraft:vegetation_large":{"firstOctave":-10,"amplitudes":[1.0,1.0,0.0,0.0,0.0,0.0]}} {"minecraft:aquifer_barrier":{"firstOctave":-3,"amplitudes":[1.0]},"minecraft:aquifer_fluid_level_floodedness":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:aquifer_fluid_level_spread":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:aquifer_lava":{"firstOctave":-1,"amplitudes":[1.0]},"minecraft:badlands_pillar":{"firstOctave":-2,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:badlands_pillar_roof":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:badlands_surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:calcite":{"firstOctave":-9,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:cave_cheese":{"firstOctave":-8,"amplitudes":[0.5,1.0,2.0,1.0,2.0,1.0,0.0,2.0,0.0]},"minecraft:cave_entrance":{"firstOctave":-7,"amplitudes":[0.4,0.5,1.0]},"minecraft:cave_layer":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:clay_bands_offset":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:continentalness":{"firstOctave":-9,"amplitudes":[1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0]},"minecraft:continentalness_large":{"firstOctave":-11,"amplitudes":[1.0,1.0,2.0,2.0,2.0,1.0,1.0,1.0,1.0]},"minecraft:erosion":{"firstOctave":-9,"amplitudes":[1.0,1.0,0.0,1.0,1.0]},"minecraft:erosion_large":{"firstOctave":-11,"amplitudes":[1.0,1.0,0.0,1.0,1.0]},"minecraft:gravel":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:gravel_layer":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:ice":{"firstOctave":-4,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:iceberg_pillar":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:iceberg_pillar_roof":{"firstOctave":-3,"amplitudes":[1.0]},"minecraft:iceberg_surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:jagged":{"firstOctave":-16,"amplitudes":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]},"minecraft:nether/temperature":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:nether/vegetation":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:nether_state_selector":{"firstOctave":-4,"amplitudes":[1.0]},"minecraft:nether_wart":{"firstOctave":-3,"amplitudes":[1.0,0.0,0.0,0.9]},"minecraft:netherrack":{"firstOctave":-3,"amplitudes":[1.0,0.0,0.0,0.35]},"minecraft:noodle":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:noodle_ridge_a":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:noodle_ridge_b":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:noodle_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:offset":{"firstOctave":-3,"amplitudes":[1.0,1.0,1.0,0.0]},"minecraft:ore_gap":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:ore_vein_a":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:ore_vein_b":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:ore_veininess":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:packed_ice":{"firstOctave":-7,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:patch":{"firstOctave":-5,"amplitudes":[1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:pillar":{"firstOctave":-7,"amplitudes":[1.0,1.0]},"minecraft:pillar_rareness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:pillar_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:powder_snow":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0,1.0]},"minecraft:ridge":{"firstOctave":-7,"amplitudes":[1.0,2.0,1.0,0.0,0.0,0.0]},"minecraft:soul_sand_layer":{"firstOctave":-8,"amplitudes":[1.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.013333333333333334]},"minecraft:spaghetti_2d":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_2d_elevation":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:spaghetti_2d_modulator":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_2d_thickness":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_3d_1":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_3d_2":{"firstOctave":-7,"amplitudes":[1.0]},"minecraft:spaghetti_3d_rarity":{"firstOctave":-11,"amplitudes":[1.0]},"minecraft:spaghetti_3d_thickness":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:spaghetti_roughness":{"firstOctave":-5,"amplitudes":[1.0]},"minecraft:spaghetti_roughness_modulator":{"firstOctave":-8,"amplitudes":[1.0]},"minecraft:sulfur_cave_gradient":{"firstOctave":-5,"amplitudes":[1.0,0.0,1.0]},"minecraft:surface":{"firstOctave":-6,"amplitudes":[1.0,1.0,1.0]},"minecraft:surface_secondary":{"firstOctave":-6,"amplitudes":[1.0,1.0,0.0,1.0]},"minecraft:surface_swamp":{"firstOctave":-2,"amplitudes":[1.0]},"minecraft:temperature":{"firstOctave":-10,"amplitudes":[1.5,0.0,1.0,0.0,0.0,0.0]},"minecraft:temperature_large":{"firstOctave":-12,"amplitudes":[1.5,0.0,1.0,0.0,0.0,0.0]},"minecraft:vegetation":{"firstOctave":-8,"amplitudes":[1.0,1.0,0.0,0.0,0.0,0.0]},"minecraft:vegetation_large":{"firstOctave":-10,"amplitudes":[1.0,1.0,0.0,0.0,0.0,0.0]}}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
["angry_villager","block","block_marker","bubble","cloud","copper_fire_flame","crit","damage_indicator","dragon_breath","dripping_lava","falling_lava","landing_lava","dripping_water","falling_water","dust","dust_color_transition","effect","elder_guardian","enchanted_hit","enchant","end_rod","entity_effect","explosion_emitter","explosion","gust","small_gust","gust_emitter_large","gust_emitter_small","sonic_boom","falling_dust","firework","fishing","flame","infested","cherry_leaves","pale_oak_leaves","tinted_leaves","sculk_soul","sculk_charge","sculk_charge_pop","soul_fire_flame","soul","flash","happy_villager","composter","heart","instant_effect","item","vibration","trail","pause_mob_growth","reset_mob_growth","item_slime","item_cobweb","item_snowball","large_smoke","lava","mycelium","note","poof","portal","rain","smoke","white_smoke","sneeze","spit","squid_ink","sweep_attack","totem_of_undying","underwater","splash","witch","bubble_pop","current_down","bubble_column_up","nautilus","dolphin","campfire_cosy_smoke","campfire_signal_smoke","dripping_honey","falling_honey","landing_honey","falling_nectar","falling_spore_blossom","ash","crimson_spore","warped_spore","spore_blossom_air","dripping_obsidian_tear","falling_obsidian_tear","landing_obsidian_tear","reverse_portal","white_ash","small_flame","snowflake","dripping_dripstone_lava","falling_dripstone_lava","dripping_dripstone_water","falling_dripstone_water","glow_squid_ink","glow","wax_on","wax_off","electric_spark","scrape","shriek","egg_crack","dust_plume","trial_spawner_detection","trial_spawner_detection_ominous","vault_connection","dust_pillar","ominous_spawning","raid_omen","trial_omen","block_crumble","firefly"] ["angry_villager","block","block_marker","bubble","sulfur_bubbles","noxious_gas","noxious_gas_cloud","geyser","geyser_base","geyser_poof","geyser_plume","cloud","copper_fire_flame","crit","damage_indicator","dragon_breath","dripping_lava","falling_lava","landing_lava","dripping_water","falling_water","dust","dust_color_transition","effect","elder_guardian","enchanted_hit","enchant","end_rod","entity_effect","explosion_emitter","explosion","gust","small_gust","gust_emitter_large","gust_emitter_small","sonic_boom","falling_dust","firework","fishing","flame","infested","cherry_leaves","pale_oak_leaves","tinted_leaves","sculk_soul","sculk_charge","sculk_charge_pop","soul_fire_flame","soul","flash","happy_villager","composter","heart","instant_effect","item","vibration","trail","pause_mob_growth","reset_mob_growth","item_slime","item_cobweb","item_snowball","large_smoke","lava","mycelium","note","poof","portal","rain","smoke","white_smoke","sneeze","spit","squid_ink","sweep_attack","totem_of_undying","underwater","splash","witch","bubble_pop","current_down","bubble_column_up","nautilus","dolphin","campfire_cosy_smoke","campfire_signal_smoke","dripping_honey","falling_honey","landing_honey","falling_nectar","falling_spore_blossom","ash","crimson_spore","warped_spore","spore_blossom_air","dripping_obsidian_tear","falling_obsidian_tear","landing_obsidian_tear","reverse_portal","white_ash","small_flame","snowflake","dripping_dripstone_lava","falling_dripstone_lava","dripping_dripstone_water","falling_dripstone_water","glow_squid_ink","glow","wax_on","wax_off","electric_spark","scrape","shriek","egg_crack","dust_plume","trial_spawner_detection","trial_spawner_detection_ominous","vault_connection","dust_pillar","ominous_spawning","raid_omen","trial_omen","block_crumble","firefly","sulfur_cube_goo"]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"948":893,"1019":1013,"1122":1121,"1252":893,"1290":893,"1341":893,"1382":1121} {"975":920,"1046":1040,"1150":1149,"1281":920,"1319":920,"1371":920,"1412":1149}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"1131":"chicken","1132":"cow","1133":"pig","1134":"sheep","1135":"camel","1136":"donkey","1137":"horse","1138":"mule","1139":"cat","1140":"parrot","1141":"wolf","1142":"armadillo","1143":"bat","1144":"bee","1145":"fox","1146":"goat","1147":"llama","1148":"ocelot","1149":"panda","1150":"polar_bear","1151":"rabbit","1152":"axolotl","1153":"cod","1154":"dolphin","1155":"frog","1156":"glow_squid","1157":"nautilus","1158":"pufferfish","1159":"salmon","1160":"squid","1161":"tadpole","1162":"tropical_fish","1163":"turtle","1164":"allay","1165":"mooshroom","1166":"sniffer","1167":"copper_golem","1168":"iron_golem","1169":"snow_golem","1170":"trader_llama","1171":"villager","1172":"wandering_trader","1173":"bogged","1174":"camel_husk","1175":"drowned","1176":"husk","1177":"parched","1178":"skeleton","1179":"skeleton_horse","1180":"stray","1181":"wither","1182":"wither_skeleton","1183":"zombie","1184":"zombie_horse","1185":"zombie_nautilus","1186":"zombie_villager","1187":"cave_spider","1188":"spider","1189":"breeze","1190":"creaking","1191":"creeper","1192":"elder_guardian","1193":"guardian","1194":"phantom","1195":"silverfish","1196":"slime","1197":"warden","1198":"witch","1199":"evoker","1200":"pillager","1201":"ravager","1202":"vindicator","1203":"vex","1204":"blaze","1205":"ghast","1206":"happy_ghast","1207":"hoglin","1208":"magma_cube","1209":"piglin","1210":"piglin_brute","1211":"strider","1212":"zoglin","1213":"zombified_piglin","1214":"ender_dragon","1215":"enderman","1216":"endermite","1217":"shulker"} {"1159":"chicken","1160":"cow","1161":"pig","1162":"sheep","1163":"camel","1164":"donkey","1165":"horse","1166":"mule","1167":"cat","1168":"parrot","1169":"wolf","1170":"armadillo","1171":"bat","1172":"bee","1173":"fox","1174":"goat","1175":"llama","1176":"ocelot","1177":"panda","1178":"polar_bear","1179":"rabbit","1180":"axolotl","1181":"cod","1182":"dolphin","1183":"frog","1184":"glow_squid","1185":"nautilus","1186":"pufferfish","1187":"salmon","1188":"squid","1189":"tadpole","1190":"tropical_fish","1191":"turtle","1192":"allay","1193":"mooshroom","1194":"sniffer","1195":"sulfur_cube","1196":"copper_golem","1197":"iron_golem","1198":"snow_golem","1199":"trader_llama","1200":"villager","1201":"wandering_trader","1202":"bogged","1203":"camel_husk","1204":"drowned","1205":"husk","1206":"parched","1207":"skeleton","1208":"skeleton_horse","1209":"stray","1210":"wither","1211":"wither_skeleton","1212":"zombie","1213":"zombie_horse","1214":"zombie_nautilus","1215":"zombie_villager","1216":"cave_spider","1217":"spider","1218":"breeze","1219":"creaking","1220":"creeper","1221":"elder_guardian","1222":"guardian","1223":"phantom","1224":"silverfish","1225":"slime","1226":"warden","1227":"witch","1228":"evoker","1229":"pillager","1230":"ravager","1231":"vindicator","1232":"vex","1233":"blaze","1234":"ghast","1235":"happy_ghast","1236":"hoglin","1237":"magma_cube","1238":"piglin","1239":"piglin_brute","1240":"strider","1241":"zoglin","1242":"zombified_piglin","1243":"ender_dragon","1244":"enderman","1245":"endermite","1246":"shulker"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"DATA_ID_PADDLE_LEFT":11,"DATA_ID_PADDLE_RIGHT":12,"DATA_ID_BUBBLE_TIME":13,"DATA_ID_HURT":8,"DATA_ID_HURTDIR":9,"DATA_ID_DAMAGE":10,"DATA_SHARED_FLAGS_ID":0,"DATA_AIR_SUPPLY_ID":1,"DATA_CUSTOM_NAME":2,"DATA_CUSTOM_NAME_VISIBLE":3,"DATA_SILENT":4,"DATA_NO_GRAVITY":5,"DATA_POSE":6,"DATA_TICKS_FROZEN":7,"DATA_DANCING":16,"DATA_CAN_DUPLICATE":17,"DATA_MOB_FLAGS_ID":15,"DATA_LIVING_ENTITY_FLAGS":8,"DATA_HEALTH_ID":9,"DATA_EFFECT_PARTICLES":10,"DATA_EFFECT_AMBIENCE_ID":11,"DATA_ARROW_COUNT_ID":12,"DATA_STINGER_COUNT_ID":13,"SLEEPING_POS_ID":14,"DATA_RADIUS":8,"DATA_WAITING":9,"DATA_PARTICLE":10,"ARMADILLO_STATE":18,"DATA_BABY_ID":16,"AGE_LOCKED":17,"DATA_CLIENT_FLAGS":15,"DATA_HEAD_POSE":16,"DATA_BODY_POSE":17,"DATA_LEFT_ARM_POSE":18,"DATA_RIGHT_ARM_POSE":19,"DATA_LEFT_LEG_POSE":20,"DATA_RIGHT_LEG_POSE":21,"ID_EFFECT_COLOR":11,"ID_FLAGS":8,"PIERCE_LEVEL":9,"IN_GROUND":10,"DATA_VARIANT":18,"DATA_PLAYING_DEAD":19,"FROM_BUCKET":16,"DATA_ID_FLAGS":18,"DATA_FLAGS_ID":18,"DATA_ANGER_END_TIME":22,"DATA_BLOCK_STATE_ID":9,"DATA_TRANSFORMATION_INTERPOLATION_START_DELTA_TICKS_ID":8,"DATA_TRANSFORMATION_INTERPOLATION_DURATION_ID":9,"DATA_POS_ROT_INTERPOLATION_DURATION_ID":10,"DATA_TRANSLATION_ID":11,"DATA_SCALE_ID":12,"DATA_LEFT_ROTATION_ID":13,"DATA_RIGHT_ROTATION_ID":14,"DATA_BILLBOARD_RENDER_CONSTRAINTS_ID":15,"DATA_BRIGHTNESS_OVERRIDE_ID":16,"DATA_VIEW_RANGE_ID":17,"DATA_SHADOW_RADIUS_ID":18,"DATA_SHADOW_STRENGTH_ID":19,"DATA_WIDTH_ID":20,"DATA_HEIGHT_ID":21,"DATA_GLOW_COLOR_OVERRIDE_ID":22,"DATA_SHEARED":16,"DASH":20,"LAST_POSE_CHANGE_TICK":20,"DATA_VARIANT_ID":21,"IS_LYING":21,"RELAX_STATE_ONE":22,"DATA_COLLAR_COLOR":21,"DATA_SOUND_VARIANT_ID":24,"DATA_OWNERUUID_ID":19,"DATA_ID_CUSTOM_DISPLAY_BLOCK":11,"DATA_ID_DISPLAY_OFFSET":12,"DATA_WEATHER_STATE":16,"COPPER_GOLEM_STATE":17,"DATA_ID_COMMAND_NAME":13,"DATA_ID_LAST_OUTPUT":14,"CAN_MOVE":16,"IS_ACTIVE":17,"IS_TEARING_DOWN":18,"HOME_POS":19,"DATA_SWELL_DIR":16,"DATA_IS_POWERED":17,"DATA_IS_IGNITED":18,"GOT_FISH":18,"MOISTNESS_LEVEL":19,"DATA_ID_CHEST":19,"DATA_SPECIAL_TYPE_ID":17,"DATA_DROWNED_CONVERSION_ID":18,"DATA_ITEM_STACK":8,"DATA_ID_MOVING":16,"DATA_ID_ATTACK_TARGET":17,"DATA_CARRY_STATE":16,"DATA_CREEPY":17,"DATA_STARED_AT":18,"DATA_PHASE":16,"DATA_BEAM_TARGET":8,"DATA_SHOW_BOTTOM":9,"DATA_SPELL_CASTING_ID":17,"IS_CELEBRATING":16,"DATA_VALUE":8,"DATA_START_POS":8,"DATA_ID_FIREWORKS_ITEM":8,"DATA_ATTACHED_TO_TARGET":9,"DATA_SHOT_AT_ANGLE":10,"DATA_TYPE_ID":18,"DATA_TRUSTED_ID_0":20,"DATA_TRUSTED_ID_1":21,"DATA_TONGUE_TARGET_ID":19,"DATA_ID_FUEL":13,"DATA_IS_CHARGING":16,"IS_LEASH_HOLDER":18,"STAYS_STILL":19,"DATA_ITEM":8,"DATA_ROTATION":10,"DATA_DIRECTION":8,"DATA_DARK_TICKS_REMAINING":18,"DATA_IS_SCREAMING_GOAT":18,"DATA_HAS_LEFT_HORN":19,"DATA_HAS_RIGHT_HORN":20,"DATA_IMMUNE_TO_ZOMBIFICATION":16,"DATA_ID_TYPE_VARIANT":17,"DATA_RESPONSE_ID":10,"DATA_ITEM_STACK_ID":23,"DATA_ITEM_DISPLAY_ID":24,"DATA_STRENGTH_ID":20,"ID_SIZE":18,"DATA_PROFILE":17,"DATA_IMMOVABLE":18,"DATA_DESCRIPTION":19,"DATA_PLAYER_MAIN_HAND":15,"DATA_PLAYER_MODE_CUSTOMISATION":16,"DATA_TYPE":17,"DATA_TRUSTING":18,"DATA_PAINTING_VARIANT_ID":9,"UNHAPPY_COUNTER":18,"SNEEZE_COUNTER":19,"EAT_COUNTER":20,"MAIN_GENE_ID":21,"HIDDEN_GENE_ID":22,"DATA_BOOST_TIME":18,"DATA_IS_CHARGING_CROSSBOW":18,"DATA_IS_DANCING":19,"IS_CHARGING_CROSSBOW":17,"DATA_STANDING_ID":18,"PUFF_STATE":17,"DATA_WOOL_ID":18,"DATA_ATTACH_FACE_ID":16,"DATA_PEEK_ID":17,"DATA_COLOR_ID":18,"DATA_STRAY_CONVERSION_ID":16,"DATA_STATE":18,"DATA_DROP_SEED_AT_TICK":19,"DATA_PUMPKIN_ID":16,"DATA_SUFFOCATING":19,"MAX_FUSE":19,"DATA_TEXT_ID":23,"DATA_LINE_WIDTH_ID":24,"DATA_BACKGROUND_COLOR_ID":25,"DATA_TEXT_OPACITY_ID":26,"DATA_STYLE_FLAGS_ID":27,"DATA_FUSE_ID":8,"ID_LOYALTY":11,"ID_FOIL":12,"HAS_EGG":18,"LAYING_EGG":19,"DATA_VILLAGER_DATA":20,"DATA_VILLAGER_DATA_FINALIZED":21,"DATA_UNHAPPY_COUNTER":18,"CLIENT_ANGER_LEVEL":16,"DATA_USING_ITEM":17,"DATA_TARGET_A":16,"DATA_TARGET_B":17,"DATA_TARGET_C":18,"DATA_ID_INV":19,"DATA_DANGEROUS":8,"DATA_INTERESTED_ID":20,"DATA_CONVERTING_ID":19,"DATA_HOOKED_ENTITY":8,"DATA_BITING":9}

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"SOUND_DISPENSER_DISPENSE":1000,"SOUND_DISPENSER_FAIL":1001,"SOUND_DISPENSER_PROJECTILE_LAUNCH":1002,"SOUND_FIREWORK_SHOOT":1004,"SOUND_EXTINGUISH_FIRE":1009,"SOUND_PLAY_JUKEBOX_SONG":1010,"SOUND_STOP_JUKEBOX_SONG":1011,"SOUND_GHAST_WARNING":1015,"SOUND_GHAST_FIREBALL":1016,"SOUND_DRAGON_FIREBALL":1017,"SOUND_BLAZE_FIREBALL":1018,"SOUND_ZOMBIE_WOODEN_DOOR":1019,"SOUND_ZOMBIE_IRON_DOOR":1020,"SOUND_ZOMBIE_DOOR_CRASH":1021,"SOUND_WITHER_BLOCK_BREAK":1022,"SOUND_WITHER_BOSS_SPAWN":1023,"SOUND_WITHER_BOSS_SHOOT":1024,"SOUND_BAT_LIFTOFF":1025,"SOUND_ZOMBIE_INFECTED":1026,"SOUND_ZOMBIE_CONVERTED":1027,"SOUND_DRAGON_DEATH":1028,"SOUND_ANVIL_BROKEN":1029,"SOUND_ANVIL_USED":1030,"SOUND_ANVIL_LAND":1031,"SOUND_PORTAL_TRAVEL":1032,"SOUND_CHORUS_GROW":1033,"SOUND_CHORUS_DEATH":1034,"SOUND_BREWING_STAND_BREW":1035,"SOUND_END_PORTAL_SPAWN":1038,"SOUND_PHANTOM_BITE":1039,"SOUND_ZOMBIE_TO_DROWNED":1040,"SOUND_HUSK_TO_ZOMBIE":1041,"SOUND_GRINDSTONE_USED":1042,"SOUND_PAGE_TURN":1043,"SOUND_SMITHING_TABLE_USED":1044,"SOUND_POINTED_DRIPSTONE_LAND":1045,"SOUND_DRIP_LAVA_INTO_CAULDRON":1046,"SOUND_DRIP_WATER_INTO_CAULDRON":1047,"SOUND_SKELETON_TO_STRAY":1048,"SOUND_CRAFTER_CRAFT":1049,"SOUND_CRAFTER_FAIL":1050,"SOUND_WIND_CHARGE_SHOOT":1051,"COMPOSTER_FILL":1500,"LAVA_FIZZ":1501,"REDSTONE_TORCH_BURNOUT":1502,"END_PORTAL_FRAME_FILL":1503,"DRIPSTONE_DRIP":1504,"PARTICLES_AND_SOUND_PLANT_GROWTH":1505,"PARTICLES_SHOOT_SMOKE":2000,"PARTICLES_DESTROY_BLOCK":2001,"PARTICLES_SPELL_POTION_SPLASH":2002,"PARTICLES_EYE_OF_ENDER_DEATH":2003,"PARTICLES_MOBBLOCK_SPAWN":2004,"PARTICLES_DRAGON_FIREBALL_SPLASH":2006,"PARTICLES_INSTANT_POTION_SPLASH":2007,"PARTICLES_DRAGON_BLOCK_BREAK":2008,"PARTICLES_WATER_EVAPORATING":2009,"PARTICLES_SHOOT_WHITE_SMOKE":2010,"PARTICLES_BEE_GROWTH":2011,"PARTICLES_TURTLE_EGG_PLACEMENT":2012,"PARTICLES_SMASH_ATTACK":2013,"ANIMATION_END_GATEWAY_SPAWN":3000,"ANIMATION_DRAGON_SUMMON_ROAR":3001,"PARTICLES_ELECTRIC_SPARK":3002,"PARTICLES_AND_SOUND_WAX_ON":3003,"PARTICLES_WAX_OFF":3004,"PARTICLES_SCRAPE":3005,"PARTICLES_SCULK_CHARGE":3006,"PARTICLES_SCULK_SHRIEK":3007,"PARTICLES_AND_SOUND_BRUSH_BLOCK_COMPLETE":3008,"PARTICLES_EGG_CRACK":3009,"PARTICLES_TRIAL_SPAWNER_SPAWN":3011,"PARTICLES_TRIAL_SPAWNER_SPAWN_MOB_AT":3012,"PARTICLES_TRIAL_SPAWNER_DETECT_PLAYER":3013,"ANIMATION_TRIAL_SPAWNER_EJECT_ITEM":3014,"ANIMATION_VAULT_ACTIVATE":3015,"ANIMATION_VAULT_DEACTIVATE":3016,"ANIMATION_VAULT_EJECT_ITEM":3017,"ANIMATION_SPAWN_COBWEB":3018,"PARTICLES_TRIAL_SPAWNER_DETECT_PLAYER_OMINOUS":3019,"PARTICLES_TRIAL_SPAWNER_BECOME_OMINOUS":3020,"PARTICLES_TRIAL_SPAWNER_SPAWN_ITEM":3021} {"SOUND_DISPENSER_DISPENSE":1000,"SOUND_DISPENSER_FAIL":1001,"SOUND_DISPENSER_PROJECTILE_LAUNCH":1002,"SOUND_FIREWORK_SHOOT":1004,"SOUND_EXTINGUISH_FIRE":1009,"SOUND_PLAY_JUKEBOX_SONG":1010,"SOUND_STOP_JUKEBOX_SONG":1011,"SOUND_GHAST_WARNING":1015,"SOUND_GHAST_FIREBALL":1016,"SOUND_DRAGON_FIREBALL":1017,"SOUND_BLAZE_FIREBALL":1018,"SOUND_ZOMBIE_WOODEN_DOOR":1019,"SOUND_ZOMBIE_IRON_DOOR":1020,"SOUND_ZOMBIE_DOOR_CRASH":1021,"SOUND_WITHER_BLOCK_BREAK":1022,"SOUND_WITHER_BOSS_SPAWN":1023,"SOUND_WITHER_BOSS_SHOOT":1024,"SOUND_BAT_LIFTOFF":1025,"SOUND_ZOMBIE_INFECTED":1026,"SOUND_ZOMBIE_CONVERTED":1027,"SOUND_DRAGON_DEATH":1028,"SOUND_ANVIL_BROKEN":1029,"SOUND_ANVIL_USED":1030,"SOUND_ANVIL_LAND":1031,"SOUND_PORTAL_TRAVEL":1032,"SOUND_CHORUS_GROW":1033,"SOUND_CHORUS_DEATH":1034,"SOUND_BREWING_STAND_BREW":1035,"SOUND_END_PORTAL_SPAWN":1038,"SOUND_PHANTOM_BITE":1039,"SOUND_ZOMBIE_TO_DROWNED":1040,"SOUND_HUSK_TO_ZOMBIE":1041,"SOUND_GRINDSTONE_USED":1042,"SOUND_PAGE_TURN":1043,"SOUND_SMITHING_TABLE_USED":1044,"SOUND_POINTED_DRIPSTONE_LAND":1045,"SOUND_DRIP_LAVA_INTO_CAULDRON":1046,"SOUND_DRIP_WATER_INTO_CAULDRON":1047,"SOUND_SKELETON_TO_STRAY":1048,"SOUND_CRAFTER_CRAFT":1049,"SOUND_CRAFTER_FAIL":1050,"SOUND_WIND_CHARGE_SHOOT":1051,"SOUND_SULFUR_SPIKE_LAND":1052,"COMPOSTER_FILL":1500,"LAVA_FIZZ":1501,"REDSTONE_TORCH_BURNOUT":1502,"END_PORTAL_FRAME_FILL":1503,"DRIPSTONE_DRIP":1504,"PARTICLES_AND_SOUND_PLANT_GROWTH":1505,"PARTICLES_SHOOT_SMOKE":2000,"PARTICLES_DESTROY_BLOCK":2001,"PARTICLES_SPELL_POTION_SPLASH":2002,"PARTICLES_EYE_OF_ENDER_DEATH":2003,"PARTICLES_MOBBLOCK_SPAWN":2004,"PARTICLES_DRAGON_FIREBALL_SPLASH":2006,"PARTICLES_INSTANT_POTION_SPLASH":2007,"PARTICLES_DRAGON_BLOCK_BREAK":2008,"PARTICLES_WATER_EVAPORATING":2009,"PARTICLES_SHOOT_WHITE_SMOKE":2010,"PARTICLES_BEE_GROWTH":2011,"PARTICLES_TURTLE_EGG_PLACEMENT":2012,"PARTICLES_SMASH_ATTACK":2013,"ANIMATION_END_GATEWAY_SPAWN":3000,"ANIMATION_DRAGON_SUMMON_ROAR":3001,"PARTICLES_ELECTRIC_SPARK":3002,"PARTICLES_AND_SOUND_WAX_ON":3003,"PARTICLES_WAX_OFF":3004,"PARTICLES_SCRAPE":3005,"PARTICLES_SCULK_CHARGE":3006,"PARTICLES_SCULK_SHRIEK":3007,"PARTICLES_AND_SOUND_BRUSH_BLOCK_COMPLETE":3008,"PARTICLES_EGG_CRACK":3009,"PARTICLES_TRIAL_SPAWNER_SPAWN":3011,"PARTICLES_TRIAL_SPAWNER_SPAWN_MOB_AT":3012,"PARTICLES_TRIAL_SPAWNER_DETECT_PLAYER":3013,"ANIMATION_TRIAL_SPAWNER_EJECT_ITEM":3014,"ANIMATION_VAULT_ACTIVATE":3015,"ANIMATION_VAULT_DEACTIVATE":3016,"ANIMATION_VAULT_EJECT_ITEM":3017,"ANIMATION_SPAWN_COBWEB":3018,"PARTICLES_TRIAL_SPAWNER_DETECT_PLAYER_OMINOUS":3019,"PARTICLES_TRIAL_SPAWNER_BECOME_OMINOUS":3020,"PARTICLES_TRIAL_SPAWNER_SPAWN_ITEM":3021}

View File

@ -76,9 +76,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.11.1" version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
[[package]] [[package]]
name = "cc" name = "cc"
@ -201,9 +201,9 @@ dependencies = [
[[package]] [[package]]
name = "crypto-bigint" name = "crypto-bigint"
version = "0.7.3" version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a0d26b245348befa0c121944541476763dcc46ede886c88f9d12e1697d27c3" checksum = "97bb4a855e3b10f84c4e7e895a7de01db7f9a7b7eb7f73ed9773fd52ac686451"
dependencies = [ dependencies = [
"cpubits", "cpubits",
"ctutils", "ctutils",
@ -238,7 +238,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21f41f23de7d24cdbda7f0c4d9c0351f99a4ceb258ef30e5c1927af8987ffe5a" checksum = "21f41f23de7d24cdbda7f0c4d9c0351f99a4ceb258ef30e5c1927af8987ffe5a"
dependencies = [ dependencies = [
"crypto-bigint 0.7.3", "crypto-bigint 0.7.4",
"libm", "libm",
"rand_core 0.10.1", "rand_core 0.10.1",
] ]
@ -802,7 +802,7 @@ dependencies = [
"base64", "base64",
"bytes", "bytes",
"colored", "colored",
"crypto-bigint 0.7.3", "crypto-bigint 0.7.4",
"ecdsa", "ecdsa",
"enum_dispatch", "enum_dispatch",
"md5", "md5",
@ -905,7 +905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30b2aa4ba0d89f73d1e332df05be0eeab8840351c36ca5654341dfdb57bb3caf" checksum = "30b2aa4ba0d89f73d1e332df05be0eeab8840351c36ca5654341dfdb57bb3caf"
dependencies = [ dependencies = [
"const-oid 0.10.2", "const-oid 0.10.2",
"crypto-bigint 0.7.3", "crypto-bigint 0.7.4",
"crypto-primes", "crypto-primes",
"digest 0.11.2", "digest 0.11.2",
"pkcs1", "pkcs1",

View File

@ -33,8 +33,16 @@ pub fn build() -> TokenStream {
.map(|item| (item.name, item.id)) .map(|item| (item.name, item.id))
.collect(); .collect();
let nbt_bytes = fs::read("../assets/bedrock/creative_items.nbt") let nbt_path = "../assets/bedrock/creative_items.nbt";
.expect("Failed to read bedrock/creative_items.nbt"); if !std::path::Path::new(nbt_path).exists() {
let generated_path = "../pumpkin-data/src/generated/bedrock_creative.rs";
if let Ok(content) = fs::read_to_string(generated_path) {
return content.parse().unwrap_or_else(|_| TokenStream::new());
}
return TokenStream::new();
}
let nbt_bytes = fs::read(nbt_path).expect("Failed to read bedrock/creative_items.nbt");
let mut cursor = Cursor::new(nbt_bytes); let mut cursor = Cursor::new(nbt_bytes);
#[derive(serde::Deserialize)] #[derive(serde::Deserialize)]

View File

@ -83,6 +83,41 @@ pub enum MaterialRuleStruct {
Badlands, Badlands,
} }
fn deserialize_string_or_vec<'de, D>(deserializer: D) -> Result<Vec<String>, D::Error>
where
D: serde::Deserializer<'de>,
{
struct StringOrVec;
impl<'de> serde::de::Visitor<'de> for StringOrVec {
type Value = Vec<String>;
fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
formatter.write_str("string or list of strings")
}
fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
where
E: serde::de::Error,
{
Ok(vec![value.to_owned()])
}
fn visit_seq<S>(self, mut seq: S) -> Result<Self::Value, S::Error>
where
S: serde::de::SeqAccess<'de>,
{
let mut vec = Vec::new();
while let Some(el) = seq.next_element()? {
vec.push(el);
}
Ok(vec)
}
}
deserializer.deserialize_any(StringOrVec)
}
/// Deserialized surface material condition that gates a material rule. /// Deserialized surface material condition that gates a material rule.
#[derive(Deserialize)] #[derive(Deserialize)]
#[serde(tag = "type")] #[serde(tag = "type")]
@ -91,6 +126,7 @@ pub enum MaterialConditionStruct {
#[serde(rename = "minecraft:biome")] #[serde(rename = "minecraft:biome")]
Biome { Biome {
/// List of biome resource locations to match against. /// List of biome resource locations to match against.
#[serde(deserialize_with = "deserialize_string_or_vec")]
biome_is: Vec<String>, biome_is: Vec<String>,
}, },
/// True when a named noise value is within the given range. /// True when a named noise value is within the given range.

View File

@ -437,7 +437,7 @@ pub fn value_to_configured_feature(v: &Value) -> TokenStream {
let tree = value_to_tree_feature(config); let tree = value_to_tree_feature(config);
quote! { ConfiguredFeature::Tree(Box::new(#tree)) } quote! { ConfiguredFeature::Tree(Box::new(#tree)) }
} }
"minecraft:pointed_dripstone" => { "minecraft:pointed_dripstone" | "minecraft:speleothem" => {
let taller = config["chance_of_taller_dripstone"].as_f64().unwrap_or(0.2) as f32; let taller = config["chance_of_taller_dripstone"].as_f64().unwrap_or(0.2) as f32;
let dir_spread = config["chance_of_directional_spread"] let dir_spread = config["chance_of_directional_spread"]
.as_f64() .as_f64()
@ -781,9 +781,12 @@ pub fn value_to_configured_feature(v: &Value) -> TokenStream {
"minecraft:bonus_chest" => { "minecraft:bonus_chest" => {
quote! { ConfiguredFeature::BonusChest(crate::generation::feature::features::bonus_chest::BonusChestFeature {}) } quote! { ConfiguredFeature::BonusChest(crate::generation::feature::features::bonus_chest::BonusChestFeature {}) }
} }
"minecraft:dripstone_cluster" => { "minecraft:dripstone_cluster" | "minecraft:speleothem_cluster" => {
quote! { ConfiguredFeature::DripstoneCluster(crate::generation::feature::features::drip_stone::cluster::DripstoneClusterFeature {}) } quote! { ConfiguredFeature::DripstoneCluster(crate::generation::feature::features::drip_stone::cluster::DripstoneClusterFeature {}) }
} }
"minecraft:sequence" | "minecraft:weighted_random_selector" => {
quote! { ConfiguredFeature::NoOp }
}
"minecraft:large_dripstone" => { "minecraft:large_dripstone" => {
quote! { ConfiguredFeature::LargeDripstone(crate::generation::feature::features::drip_stone::large::LargeDripstoneFeature {}) } quote! { ConfiguredFeature::LargeDripstone(crate::generation::feature::features::drip_stone::large::LargeDripstoneFeature {}) }
} }

View File

@ -944,6 +944,7 @@ pub fn build() -> TokenStream {
"magma_block" => "magma".into(), "magma_block" => "magma".into(),
"map" => "empty_map".into(), "map" => "empty_map".into(),
"melon" => "melon_block".into(), "melon" => "melon_block".into(),
"music_disc_bounce" => "music_disc_13".into(),
"nether_brick" => "netherbrick".into(), "nether_brick" => "netherbrick".into(),
"nether_bricks" => "nether_brick".into(), "nether_bricks" => "nether_brick".into(),
"nether_quartz_ore" => "quartz_ore".into(), "nether_quartz_ore" => "quartz_ore".into(),
@ -972,6 +973,7 @@ pub fn build() -> TokenStream {
"tipped_arrow" | "spectral_arrow" => "arrow".into(), "tipped_arrow" | "spectral_arrow" => "arrow".into(),
"waxed_copper_block" => "waxed_copper".into(), "waxed_copper_block" => "waxed_copper".into(),
"zombified_piglin_spawn_egg" => "zombie_pigman_spawn_egg".into(), "zombified_piglin_spawn_egg" => "zombie_pigman_spawn_egg".into(),
n if n.contains("sulfur") => "unknown".into(),
n => { n => {
if n.ends_with("banner") { if n.ends_with("banner") {
"banner".into() "banner".into()
@ -1224,14 +1226,20 @@ pub fn build() -> TokenStream {
for (java_name, mapping) in &be_item_remaps { for (java_name, mapping) in &be_item_remaps {
let java_const_ident = format_ident!("{}", java_name.to_shouty_snake_case()); let java_const_ident = format_ident!("{}", java_name.to_shouty_snake_case());
let bedrock_id = *bedrock_id_by_key.get(&mapping.identifier).unwrap_or_else(|| { let bedrock_id = *bedrock_id_by_key
panic!("Missing bedrock item for identifier: {}", mapping.identifier) .get(&mapping.identifier)
}); .unwrap_or_else(|| {
panic!(
"Missing bedrock item for identifier: {}",
mapping.identifier
)
});
let bedrock_data = mapping.data; let bedrock_data = mapping.data;
if seen_bedrock_pairs.insert((bedrock_id, bedrock_data)) { if seen_bedrock_pairs.insert((bedrock_id, bedrock_data)) {
let id_lit = syn::LitInt::new(&bedrock_id.to_string(), proc_macro2::Span::call_site()); let id_lit = syn::LitInt::new(&bedrock_id.to_string(), proc_macro2::Span::call_site());
let data_lit = syn::LitInt::new(&bedrock_data.to_string(), proc_macro2::Span::call_site()); let data_lit =
syn::LitInt::new(&bedrock_data.to_string(), proc_macro2::Span::call_site());
bedrock_to_java_arms.extend(quote! { bedrock_to_java_arms.extend(quote! {
(#id_lit, #data_lit) => Some(&Self::#java_const_ident), (#id_lit, #data_lit) => Some(&Self::#java_const_ident),
}); });

View File

@ -53,6 +53,7 @@ pub struct LootPoolStruct {
/// Number of times the pool is rolled. /// Number of times the pool is rolled.
rolls: LootNumberProviderTypes, rolls: LootNumberProviderTypes,
/// Extra rolls granted by luck-related enchantments. /// Extra rolls granted by luck-related enchantments.
#[serde(default = "default_bonus_rolls")]
bonus_rolls: LootNumberProviderTypes, bonus_rolls: LootNumberProviderTypes,
/// Conditions that must all pass for this pool to be rolled, if any. /// Conditions that must all pass for this pool to be rolled, if any.
conditions: Option<Vec<LootConditionStruct>>, conditions: Option<Vec<LootConditionStruct>>,
@ -60,6 +61,10 @@ pub struct LootPoolStruct {
functions: Option<Vec<LootFunctionStruct>>, functions: Option<Vec<LootFunctionStruct>>,
} }
fn default_bonus_rolls() -> LootNumberProviderTypes {
LootNumberProviderTypes::Constant(0.0)
}
impl ToTokens for LootPoolStruct { impl ToTokens for LootPoolStruct {
/// Emits a `LootPool { … }` struct literal token stream for code generation. /// Emits a `LootPool { … }` struct literal token stream for code generation.
fn to_tokens(&self, tokens: &mut TokenStream) { fn to_tokens(&self, tokens: &mut TokenStream) {

View File

@ -20,6 +20,7 @@ pub fn build() -> TokenStream {
"1_21_11_meta_data_type.json", "1_21_11_meta_data_type.json",
), ),
(JavaMinecraftVersion::V_26_1, "26_1_meta_data_type.json"), (JavaMinecraftVersion::V_26_1, "26_1_meta_data_type.json"),
(JavaMinecraftVersion::V_26_2, "26_2_meta_data_type.json"),
]; ];
let mut handlers_map: BTreeMap<String, BTreeMap<JavaMinecraftVersion, i32>> = BTreeMap::new(); let mut handlers_map: BTreeMap<String, BTreeMap<JavaMinecraftVersion, i32>> = BTreeMap::new();

View File

@ -312,35 +312,6 @@ impl UnaryOperation {
} }
} }
/// Rarity-value mapper used by the `WeirdScaled` density function.
#[derive(Deserialize, Hash, Copy, Clone)]
enum WeirdScaledMapper {
/// Cave-type scaling curve (TYPE2).
#[serde(rename(deserialize = "TYPE2"))]
Caves,
/// Tunnel-type scaling curve (TYPE1).
#[serde(rename(deserialize = "TYPE1"))]
Tunnels,
}
impl WeirdScaledMapper {
/// Emits the token stream for this mapper variant.
fn into_token_stream(self) -> TokenStream {
match self {
Self::Caves => {
quote! {
WeirdScaledMapper::Caves
}
}
Self::Tunnels => {
quote! {
WeirdScaledMapper::Tunnels
}
}
}
}
}
/// Caching or interpolation wrapper applied around an inner density function. /// Caching or interpolation wrapper applied around an inner density function.
#[derive(Copy, Clone, Deserialize, PartialEq, Eq, Hash)] #[derive(Copy, Clone, Deserialize, PartialEq, Eq, Hash)]
enum WrapperType { enum WrapperType {
@ -418,17 +389,6 @@ struct ShiftedNoiseData {
noise_id: String, noise_id: String,
} }
/// Deserialized parameters for a weird-scaled-sampler density function.
#[derive(Deserialize, Hash, Clone)]
struct WeirdScaledData {
/// Resource location ID of the noise generator.
#[serde(rename(deserialize = "noise"))]
noise_id: String,
/// The rarity-value mapper that scales the noise output.
#[serde(rename(deserialize = "rarityValueMapper"))]
mapper: WeirdScaledMapper,
}
/// Deserialized parameters for the interpolated noise sampler density function. /// Deserialized parameters for the interpolated noise sampler density function.
#[derive(Deserialize, Hash)] #[derive(Deserialize, Hash)]
struct InterpolatedNoiseSamplerData { struct InterpolatedNoiseSamplerData {
@ -630,13 +590,11 @@ enum DensityFunctionRepr {
data: InterpolatedNoiseSamplerData, data: InterpolatedNoiseSamplerData,
}, },
/// Scales an input density function by a cave/tunnel rarity curve. /// Scales an input density function by a cave/tunnel rarity curve.
#[serde(rename(deserialize = "WeirdScaledSampler"))] #[serde(rename(deserialize = "IntervalSelect"))]
WeirdScaled { IntervalSelect {
/// The density function to scale.
input: Box<Self>, input: Box<Self>,
/// Noise ID and mapper type for scaling. thresholds: Box<[HashableF64]>,
#[serde(flatten)] functions: Box<[Self]>,
data: WeirdScaledData,
}, },
/// Wraps an inner function with a caching or interpolation layer. /// Wraps an inner function with a caching or interpolation layer.
// The wrapped function is wrapped in a new wrapper at runtime // The wrapped function is wrapped in a new wrapper at runtime
@ -1008,19 +966,23 @@ impl DensityFunctionRepr {
} }
} }
} }
Self::WeirdScaled { input, data } => { Self::IntervalSelect {
input,
thresholds,
functions,
} => {
let input_index = input.get_index_for_component(stack, hash_to_index_map); let input_index = input.get_index_for_component(stack, hash_to_index_map);
let functions_indices = functions
let noise_id = quote::format_ident!("{}", data.noise_id.to_shouty_snake_case()); .iter()
let action = data.mapper.into_token_stream(); .map(|f| f.get_index_for_component(stack, hash_to_index_map))
.collect::<Vec<_>>();
let thresholds = thresholds.iter().map(|t| t.0).collect::<Vec<_>>();
quote! { quote! {
BaseNoiseFunctionComponent::WeirdScaled { BaseNoiseFunctionComponent::IntervalSelect {
input_index: #input_index, input_index: #input_index,
data: &WeirdScaledData { thresholds: &[#(#thresholds),*],
noise_id: DoublePerlinNoiseParameters::#noise_id, functions_indices: &[#(#functions_indices),*],
mapper: #action,
},
} }
} }
} }
@ -1270,59 +1232,6 @@ pub fn build() -> TokenStream {
pub noise_id: DoublePerlinNoiseParameters, pub noise_id: DoublePerlinNoiseParameters,
} }
#[derive(Copy, Clone)]
pub enum WeirdScaledMapper {
Caves,
Tunnels,
}
impl WeirdScaledMapper {
#[inline]
#[must_use]
pub const fn max_multiplier(&self) -> f64 {
match self {
Self::Tunnels => 2.0,
Self::Caves => 3.0,
}
}
#[inline]
#[must_use]
#[allow(clippy::too_many_lines)]
pub const fn scale(&self, value: f64) -> f64 {
match self {
Self::Tunnels => {
if value < -0.5 {
0.75
} else if value < 0.0 {
1.0
} else if value < 0.5 {
1.5
} else {
2.0
}
}
Self::Caves => {
if value < -0.75 {
0.5
} else if value < -0.5 {
0.75
} else if value < 0.5 {
1.0
} else if value < 0.75 {
2.0
} else {
3.0
}
}
}
}
}
pub struct WeirdScaledData {
pub noise_id: DoublePerlinNoiseParameters,
pub mapper: WeirdScaledMapper,
}
pub struct InterpolatedNoiseSamplerData { pub struct InterpolatedNoiseSamplerData {
pub scaled_xz_scale: f64, pub scaled_xz_scale: f64,
@ -1496,9 +1405,10 @@ pub fn build() -> TokenStream {
InterpolatedNoiseSampler { InterpolatedNoiseSampler {
data: &'static InterpolatedNoiseSamplerData, data: &'static InterpolatedNoiseSamplerData,
}, },
WeirdScaled { IntervalSelect {
input_index: usize, input_index: usize,
data: &'static WeirdScaledData, thresholds: &'static [f64],
functions_indices: &'static [usize],
}, },
// The wrapped function is wrapped in a new wrapper at runtime // The wrapped function is wrapped in a new wrapper at runtime
Wrapper { Wrapper {

View File

@ -6,7 +6,7 @@ use std::{collections::BTreeMap, fs};
use crate::version::JavaMinecraftVersion; use crate::version::JavaMinecraftVersion;
/// The newest protocol version used as the fallback for unknown versions in `PacketId::to_id`. /// The newest protocol version used as the fallback for unknown versions in `PacketId::to_id`.
const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_1; const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_2;
/// Raw deserialization shape for a single versioned packet mapping file. /// Raw deserialization shape for a single versioned packet mapping file.
#[derive(Deserialize)] #[derive(Deserialize)]
@ -34,6 +34,7 @@ pub(crate) fn build() -> TokenStream {
(JavaMinecraftVersion::V_1_21_9, "1_21_9_packets.json"), (JavaMinecraftVersion::V_1_21_9, "1_21_9_packets.json"),
(JavaMinecraftVersion::V_1_21_11, "1_21_11_packets.json"), (JavaMinecraftVersion::V_1_21_11, "1_21_11_packets.json"),
(JavaMinecraftVersion::V_26_1, "26_1_packets.json"), (JavaMinecraftVersion::V_26_1, "26_1_packets.json"),
(JavaMinecraftVersion::V_26_2, "26_2_packets.json"),
]; ];
// Parse available packet files into a BTreeMap keyed by JavaMinecraftVersion // Parse available packet files into a BTreeMap keyed by JavaMinecraftVersion

View File

@ -555,6 +555,9 @@ pub fn value_to_y_offset(v: &Value) -> TokenStream {
/// An `IntProvider` variant token stream; defaults to `IntProvider::Constant(0)` when unrecognized. /// An `IntProvider` variant token stream; defaults to `IntProvider::Constant(0)` when unrecognized.
pub fn value_to_int_provider(v: &Value) -> TokenStream { pub fn value_to_int_provider(v: &Value) -> TokenStream {
match v { match v {
Value::Null => {
quote! { IntProvider::Constant(0) }
}
Value::Number(n) => { Value::Number(n) => {
let val = n.as_i64().unwrap_or(0) as i32; let val = n.as_i64().unwrap_or(0) as i32;
quote! { IntProvider::Constant(#val) } quote! { IntProvider::Constant(#val) }
@ -611,11 +614,17 @@ pub fn value_to_int_provider(v: &Value) -> TokenStream {
quote! { IntProvider::Object(NormalIntProvider::WeightedList(WeightedListIntProvider { distribution: vec![#(#entries),*] })) } quote! { IntProvider::Object(NormalIntProvider::WeightedList(WeightedListIntProvider { distribution: vec![#(#entries),*] })) }
} }
_ => { _ => {
panic!("Unknown Int Provider, Seems like Mojang added a new one") panic!(
"Unknown Int Provider, Seems like Mojang added a new one: {:?}",
v
)
} }
} }
} }
_ => panic!("Unknown Int Provider, Seems like Mojang added a new one"), _ => panic!(
"Unknown Int Provider, Seems like Mojang added a new one: {:?}",
v
),
} }
} }

View File

@ -88,7 +88,7 @@ pub struct CookingRecipeStruct {
/// The single ingredient required by this recipe. /// The single ingredient required by this recipe.
ingredient: RecipeIngredientTypes, ingredient: RecipeIngredientTypes,
/// Number of ticks required to cook this recipe. /// Number of ticks required to cook this recipe.
cookingtime: i32, cookingtime: Option<i32>,
/// Experience points awarded when the result is extracted. /// Experience points awarded when the result is extracted.
experience: f32, experience: f32,
/// The item produced by this recipe. /// The item produced by this recipe.
@ -129,7 +129,12 @@ impl CookingRecipeStruct {
/// # Arguments /// # Arguments
/// – `tokens` – the token stream to extend. /// – `tokens` – the token stream to extend.
/// – `recipe_id` – the pre-generated vanilla-format recipe ID string. /// – `recipe_id` – the pre-generated vanilla-format recipe ID string.
fn to_tokens_with_id(&self, tokens: &mut TokenStream, recipe_id: &str) { fn to_tokens_with_id(
&self,
tokens: &mut TokenStream,
recipe_id: &str,
default_cookingtime: i32,
) {
let category = match &self.category { let category = match &self.category {
Some(category) => category.to_token_stream(), Some(category) => category.to_token_stream(),
None => RecipeCategoryTypes::Misc.to_token_stream(), None => RecipeCategoryTypes::Misc.to_token_stream(),
@ -140,7 +145,10 @@ impl CookingRecipeStruct {
quote! { None } quote! { None }
}; };
let ingredient = self.ingredient.to_token_stream(); let ingredient = self.ingredient.to_token_stream();
let cookingtime = self.cookingtime.to_token_stream(); let cookingtime = self
.cookingtime
.unwrap_or(default_cookingtime)
.to_token_stream();
let experience = self.experience.to_token_stream(); let experience = self.experience.to_token_stream();
let result = self.result.to_token_stream(); let result = self.result.to_token_stream();
@ -168,7 +176,7 @@ impl ToTokens for CookingRecipeStruct {
quote! { None } quote! { None }
}; };
let ingredient = self.ingredient.to_token_stream(); let ingredient = self.ingredient.to_token_stream();
let cookingtime = self.cookingtime.to_token_stream(); let cookingtime = self.cookingtime.unwrap_or(200).to_token_stream();
let experience = self.experience.to_token_stream(); let experience = self.experience.to_token_stream();
let result = self.result.to_token_stream(); let result = self.result.to_token_stream();
@ -457,7 +465,7 @@ impl ToTokens for RecipeCategoryTypes {
/// Reads `recipes.json` and emits the complete recipe constants and helpers `TokenStream`. /// Reads `recipes.json` and emits the complete recipe constants and helpers `TokenStream`.
pub fn build() -> TokenStream { pub fn build() -> TokenStream {
let recipes_assets: Vec<RecipeTypes> = let recipes_assets: BTreeMap<String, RecipeTypes> =
serde_json::from_str(&fs::read_to_string("../assets/recipes.json").unwrap()) serde_json::from_str(&fs::read_to_string("../assets/recipes.json").unwrap())
.expect("Failed to parse recipes.json"); .expect("Failed to parse recipes.json");
@ -465,12 +473,11 @@ pub fn build() -> TokenStream {
let mut cooking_recipes = Vec::new(); let mut cooking_recipes = Vec::new();
let mut stonecutting_recipes = Vec::new(); let mut stonecutting_recipes = Vec::new();
for recipe in recipes_assets { for (recipe_id, recipe) in recipes_assets {
match recipe { match recipe {
RecipeTypes::Blasting(recipe) => { RecipeTypes::Blasting(recipe) => {
let recipe_id = recipe.generate_recipe_id("blasting");
let mut common_cooking_token = TokenStream::new(); let mut common_cooking_token = TokenStream::new();
recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id); recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id, 100);
let blasting_token = quote! { let blasting_token = quote! {
CookingRecipeType::Blasting (CookingRecipe { CookingRecipeType::Blasting (CookingRecipe {
#common_cooking_token #common_cooking_token
@ -479,9 +486,8 @@ pub fn build() -> TokenStream {
cooking_recipes.push(blasting_token); cooking_recipes.push(blasting_token);
} }
RecipeTypes::CampfireCooking(recipe) => { RecipeTypes::CampfireCooking(recipe) => {
let recipe_id = recipe.generate_recipe_id("campfire_cooking");
let mut common_cooking_token = TokenStream::new(); let mut common_cooking_token = TokenStream::new();
recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id); recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id, 100);
let campfire_token = quote! { let campfire_token = quote! {
CookingRecipeType::CampfireCooking (CookingRecipe { CookingRecipeType::CampfireCooking (CookingRecipe {
#common_cooking_token #common_cooking_token
@ -502,9 +508,8 @@ pub fn build() -> TokenStream {
crafting_recipes.push(recipe.to_token_stream()); crafting_recipes.push(recipe.to_token_stream());
} }
RecipeTypes::Smelting(recipe) => { RecipeTypes::Smelting(recipe) => {
let recipe_id = recipe.generate_recipe_id("smelting");
let mut common_cooking_token = TokenStream::new(); let mut common_cooking_token = TokenStream::new();
recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id); recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id, 200);
let smelting_token = quote! { let smelting_token = quote! {
CookingRecipeType::Smelting(CookingRecipe { CookingRecipeType::Smelting(CookingRecipe {
#common_cooking_token #common_cooking_token
@ -515,9 +520,8 @@ pub fn build() -> TokenStream {
RecipeTypes::SmithingTransform => {} RecipeTypes::SmithingTransform => {}
RecipeTypes::SmithingTrim => {} RecipeTypes::SmithingTrim => {}
RecipeTypes::Smoking(recipe) => { RecipeTypes::Smoking(recipe) => {
let recipe_id = recipe.generate_recipe_id("smoking");
let mut common_cooking_token = TokenStream::new(); let mut common_cooking_token = TokenStream::new();
recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id); recipe.to_tokens_with_id(&mut common_cooking_token, &recipe_id, 100);
let smoking_token = quote! { let smoking_token = quote! {
CookingRecipeType::Smoking(CookingRecipe{ CookingRecipeType::Smoking(CookingRecipe{
#common_cooking_token #common_cooking_token

View File

@ -7,7 +7,7 @@ use std::fs;
use crate::version::JavaMinecraftVersion; use crate::version::JavaMinecraftVersion;
/// The newest protocol version whose registry data is used as the fallback for unknown versions. /// The newest protocol version whose registry data is used as the fallback for unknown versions.
const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_1; const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_2;
/// Generates the `TokenStream` for the `Registry` and `StaticRegistry` structs, version-keyed /// Generates the `TokenStream` for the `Registry` and `StaticRegistry` structs, version-keyed
/// static registry data, and the `Registry::get_synced` method. /// static registry data, and the `Registry::get_synced` method.
@ -47,6 +47,7 @@ pub(crate) fn build() -> TokenStream {
"1_21_11_synced_registries.json", "1_21_11_synced_registries.json",
), ),
(JavaMinecraftVersion::V_26_1, "26_1_synced_registries.json"), (JavaMinecraftVersion::V_26_1, "26_1_synced_registries.json"),
(JavaMinecraftVersion::V_26_2, "26_2_synced_registries.json"),
]; ];
let process_version = |path: &str| -> TokenStream { let process_version = |path: &str| -> TokenStream {

View File

@ -52,8 +52,13 @@ pub fn build() -> TokenStream {
value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt", value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt",
child: Some(&node_1_21_9), child: Some(&node_1_21_9),
}; };
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper { let node_26_1 = MappingNode {
version: JavaMinecraftVersion::V_26_1, version: JavaMinecraftVersion::V_26_1,
value: "../assets/viabackwards/data/mappings-26.2to26.1.nbt",
child: Some(&node_1_21_11),
};
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper {
version: JavaMinecraftVersion::V_26_2,
remapper: |first, second| match (first, second) { remapper: |first, second| match (first, second) {
(Some(first), Some(second)) => Some( (Some(first), Some(second)) => Some(
first first
@ -75,7 +80,7 @@ pub fn build() -> TokenStream {
}, },
}; };
let all_mappings = remapper.process(&node_1_21_11); let all_mappings = remapper.process(&node_26_1);
let mut static_values = TokenStream::new(); let mut static_values = TokenStream::new();
let mut match_arms = TokenStream::new(); let mut match_arms = TokenStream::new();

View File

@ -52,8 +52,13 @@ pub fn build() -> TokenStream {
value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt", value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt",
child: Some(&node_1_21_9), child: Some(&node_1_21_9),
}; };
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper { let node_26_1 = MappingNode {
version: JavaMinecraftVersion::V_26_1, version: JavaMinecraftVersion::V_26_1,
value: "../assets/viabackwards/data/mappings-26.2to26.1.nbt",
child: Some(&node_1_21_11),
};
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper {
version: JavaMinecraftVersion::V_26_2,
remapper: |first, second| match (first, second) { remapper: |first, second| match (first, second) {
(Some(first), Some(second)) => Some( (Some(first), Some(second)) => Some(
first first
@ -71,7 +76,7 @@ pub fn build() -> TokenStream {
}, },
}; };
let all_mappings = remapper.process(&node_1_21_11); let all_mappings = remapper.process(&node_26_1);
let mut static_values = TokenStream::new(); let mut static_values = TokenStream::new();
let mut match_arms = TokenStream::new(); let mut match_arms = TokenStream::new();

View File

@ -54,9 +54,14 @@ pub fn build() -> TokenStream {
value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt", value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt",
child: Some(&node_1_21_9), child: Some(&node_1_21_9),
}; };
let node_26_1 = MappingNode {
version: JavaMinecraftVersion::V_26_1,
value: "../assets/viabackwards/data/mappings-26.2to26.1.nbt",
child: Some(&node_1_21_11),
};
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper { let remapper: Remapper<_, Option<Vec<u16>>> = Remapper {
version: JavaMinecraftVersion::V_26_1, version: JavaMinecraftVersion::V_26_2,
remapper: |first, second| match (first, second) { remapper: |first, second| match (first, second) {
(Some(first), Some(second)) => Some( (Some(first), Some(second)) => Some(
first first
@ -77,7 +82,7 @@ pub fn build() -> TokenStream {
}, },
}; };
let all_mappings = remapper.process(&node_1_21_11); let all_mappings = remapper.process(&node_26_1);
let mapping_size = all_mappings let mapping_size = all_mappings
.iter() .iter()
.flat_map(|(_, mapping)| { .flat_map(|(_, mapping)| {

View File

@ -52,8 +52,13 @@ pub fn build() -> TokenStream {
value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt", value: "../assets/viabackwards/data/mappings-26.1to1.21.11.nbt",
child: Some(&node_1_21_9), child: Some(&node_1_21_9),
}; };
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper { let node_26_1 = MappingNode {
version: JavaMinecraftVersion::V_26_1, version: JavaMinecraftVersion::V_26_1,
value: "../assets/viabackwards/data/mappings-26.2to26.1.nbt",
child: Some(&node_1_21_11),
};
let remapper: Remapper<_, Option<Vec<u16>>> = Remapper {
version: JavaMinecraftVersion::V_26_2,
remapper: |first, second| match (first, second) { remapper: |first, second| match (first, second) {
(Some(first), Some(second)) => Some( (Some(first), Some(second)) => Some(
first first
@ -74,7 +79,7 @@ pub fn build() -> TokenStream {
}, },
}; };
let all_mappings = remapper.process(&node_1_21_11); let all_mappings = remapper.process(&node_26_1);
let mut static_values = TokenStream::new(); let mut static_values = TokenStream::new();
let mut match_arms = TokenStream::new(); let mut match_arms = TokenStream::new();
for (ver, mapping) in &all_mappings { for (ver, mapping) in &all_mappings {

View File

@ -1,8 +1,8 @@
use heck::ToPascalCase;
use indexmap::IndexMap;
use proc_macro2::TokenStream; use proc_macro2::TokenStream;
use quote::{format_ident, quote}; use quote::{format_ident, quote};
use serde::Deserialize; use serde::Deserialize;
use indexmap::IndexMap;
use heck::ToPascalCase;
#[derive(Deserialize)] #[derive(Deserialize)]
struct CustomStatisticEntry { struct CustomStatisticEntry {
@ -37,14 +37,13 @@ pub fn build() -> TokenStream {
category_variants.push(quote! { #category_ident = #category_id }); category_variants.push(quote! { #category_ident = #category_id });
category_from_id_arms.push(quote! { #category_id => Some(Self::#category_ident) }); category_from_id_arms.push(quote! { #category_id => Some(Self::#category_ident) });
let category_name_stripped = category_name.replace("minecraft:", ""); let category_name_stripped = category_name.replace("minecraft:", "");
category_from_name_arms.push(quote! { #category_name_stripped => Some(Self::#category_ident) }); category_from_name_arms
.push(quote! { #category_name_stripped => Some(Self::#category_ident) });
if category_name == "minecraft:custom" { if category_name == "minecraft:custom" {
for (stat_name, entry) in &data.entries { for (stat_name, entry) in &data.entries {
let stat_ident = format_ident!( let stat_ident =
"{}", format_ident!("{}", stat_name.replace("minecraft:", "").to_pascal_case());
stat_name.replace("minecraft:", "").to_pascal_case()
);
let stat_id = entry.id; let stat_id = entry.id;
custom_stat_variants.push(quote! { #stat_ident = #stat_id }); custom_stat_variants.push(quote! { #stat_ident = #stat_id });
custom_stat_from_id_arms.push(quote! { #stat_id => Some(Self::#stat_ident) }); custom_stat_from_id_arms.push(quote! { #stat_id => Some(Self::#stat_ident) });

View File

@ -675,4 +675,4 @@ pub fn build() -> TokenStream {
} }
} }
) )
} }

View File

@ -68,7 +68,7 @@ impl ToTokens for EnumCreator {
} }
/// The newest protocol version whose tag data is served as the latest-version fallback. /// The newest protocol version whose tag data is served as the latest-version fallback.
const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_1; const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_2;
/// Generates the `TokenStream` for the `Tag` type, `RegistryKey` enum, all per-version tag /// Generates the `TokenStream` for the `Tag` type, `RegistryKey` enum, all per-version tag
/// modules, and the `Taggable` trait with its lookup helpers. /// modules, and the `Taggable` trait with its lookup helpers.
@ -88,6 +88,7 @@ pub(crate) fn build() -> TokenStream {
(JavaMinecraftVersion::V_1_21_9, "1_21_9_tags.json"), (JavaMinecraftVersion::V_1_21_9, "1_21_9_tags.json"),
(JavaMinecraftVersion::V_1_21_11, "1_21_11_tags.json"), (JavaMinecraftVersion::V_1_21_11, "1_21_11_tags.json"),
(JavaMinecraftVersion::V_26_1, "26_1_tags.json"), (JavaMinecraftVersion::V_26_1, "26_1_tags.json"),
(JavaMinecraftVersion::V_26_2, "26_2_tags.json"),
]; ];
// --- Load Global Assets --- // --- Load Global Assets ---

View File

@ -5,7 +5,7 @@ use std::{collections::BTreeMap, fs};
use crate::version::JavaMinecraftVersion; use crate::version::JavaMinecraftVersion;
/// The newest protocol version used as the fallback for unknown versions in `TrackedId::get`. /// The newest protocol version used as the fallback for unknown versions in `TrackedId::get`.
const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_1; const LATEST_VERSION: JavaMinecraftVersion = JavaMinecraftVersion::V_26_2;
/// Generates the `TokenStream` for `TrackedId`, `TrackedData`, and all per-entity tracking constants. /// Generates the `TokenStream` for `TrackedId`, `TrackedData`, and all per-entity tracking constants.
pub(crate) fn build() -> TokenStream { pub(crate) fn build() -> TokenStream {
@ -19,6 +19,7 @@ pub(crate) fn build() -> TokenStream {
(JavaMinecraftVersion::V_1_21_9, "1_21_9_tracked_data.json"), (JavaMinecraftVersion::V_1_21_9, "1_21_9_tracked_data.json"),
(JavaMinecraftVersion::V_1_21_11, "1_21_11_tracked_data.json"), (JavaMinecraftVersion::V_1_21_11, "1_21_11_tracked_data.json"),
(JavaMinecraftVersion::V_26_1, "26_1_tracked_data.json"), (JavaMinecraftVersion::V_26_1, "26_1_tracked_data.json"),
(JavaMinecraftVersion::V_26_2, "26_2_tracked_data.json"),
]; ];
let mut versions = BTreeMap::new(); let mut versions = BTreeMap::new();

View File

@ -74,6 +74,7 @@ pub enum JavaMinecraftVersion {
V_1_21_9, V_1_21_9,
V_1_21_11, V_1_21_11,
V_26_1, V_26_1,
V_26_2,
} }
impl JavaMinecraftVersion { impl JavaMinecraftVersion {
@ -133,6 +134,7 @@ impl JavaMinecraftVersion {
Self::V_1_21_9 => format_ident!("v1_21_9"), Self::V_1_21_9 => format_ident!("v1_21_9"),
Self::V_1_21_11 => format_ident!("v1_21_11"), Self::V_1_21_11 => format_ident!("v1_21_11"),
Self::V_26_1 => format_ident!("v26_1"), Self::V_26_1 => format_ident!("v26_1"),
Self::V_26_2 => format_ident!("v26_2"),
} }
} }
} }
@ -191,6 +193,7 @@ impl ToTokens for JavaMinecraftVersion {
Self::V_1_21_9 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 }, Self::V_1_21_9 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 },
Self::V_1_21_11 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_1_21_11 }, Self::V_1_21_11 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_1_21_11 },
Self::V_26_1 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_26_1 }, Self::V_26_1 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_26_1 },
Self::V_26_2 => quote! { pumpkin_util::version::JavaMinecraftVersion::V_26_2 },
}); });
} }
} }

View File

@ -69,7 +69,9 @@ pub fn build_java_mapping() -> String {
); );
output.push_str("#[must_use]\n"); output.push_str("#[must_use]\n");
output.push_str("pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option<ClientboundPacket> {\n"); output.push_str(
"pub fn clientbound_java_any_to_wit(any: &dyn Any) -> Option<ClientboundPacket> {\n",
);
process_packets( process_packets(
"../pumpkin-protocol/src/java/client/play", "../pumpkin-protocol/src/java/client/play",
&mut output, &mut output,
@ -141,7 +143,9 @@ pub fn build_bedrock_mapping() -> String {
); );
output.push_str("#[must_use]\n"); output.push_str("#[must_use]\n");
output.push_str("pub fn clientbound_bedrock_any_to_wit(any: &dyn Any) -> Option<BClientboundPacket> {\n"); output.push_str(
"pub fn clientbound_bedrock_any_to_wit(any: &dyn Any) -> Option<BClientboundPacket> {\n",
);
process_packets( process_packets(
"../pumpkin-protocol/src/bedrock/client", "../pumpkin-protocol/src/bedrock/client",
&mut output, &mut output,
@ -199,7 +203,14 @@ fn process_packets(
if path.extension().is_some_and(|ext| ext == "rs") if path.extension().is_some_and(|ext| ext == "rs")
&& path.file_name().is_some_and(|name| name != "mod.rs") && path.file_name().is_some_and(|name| name != "mod.rs")
{ {
parse_packet_file(&path, output, attr_name, variant_prefix, rust_path_prefix, mode); parse_packet_file(
&path,
output,
attr_name,
variant_prefix,
rust_path_prefix,
mode,
);
} }
} }
} }
@ -248,7 +259,8 @@ fn parse_packet_file(
if type_ident == "DynamicRecipe" { if type_ident == "DynamicRecipe" {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
field_inits.push_str(&format!(" {}: &[],\n", field_name)); field_inits
.push_str(&format!(" {}: &[],\n", field_name));
} else { } else {
possible = false; // Cannot handle DynamicRecipe yet possible = false; // Cannot handle DynamicRecipe yet
} }
@ -263,49 +275,76 @@ fn parse_packet_file(
"String" | "str" => { "String" | "str" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &data.{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: &data.{},\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: data.{}.clone(),\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: data.{}.clone(),\n",
field_name, wit_field
));
} }
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
field_inits.push_str(&format!(" {}: p.{}.into(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: p.{}.into(),\n",
wit_field, field_name
));
} else { } else {
// ToWit // ToWit
field_inits.push_str(&format!(" {}: self.{}.to_string(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: self.{}.to_string(),\n",
wit_field, field_name
));
} }
}, }
"VarUInt" => { "VarUInt" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
field_inits.push_str(&format!(" {}: pumpkin_protocol::codec::var_uint::VarUInt(data.{}.try_into().unwrap()),\n", field_name, wit_field)); field_inits.push_str(&format!(" {}: pumpkin_protocol::codec::var_uint::VarUInt(data.{}.try_into().unwrap()),\n", field_name, wit_field));
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
field_inits.push_str(&format!(" {}: p.{}.0.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: p.{}.0.try_into().unwrap(),\n",
wit_field, field_name
));
} else { } else {
field_inits.push_str(&format!(" {}: self.{}.0.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: self.{}.0.try_into().unwrap(),\n",
wit_field, field_name
));
} }
}, }
"TextComponent" => { "TextComponent" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
prep_code.push_str(&format!(" let component_{} = pumpkin_util::text::TextComponent::text(data.{}.clone());\n", wit_field, wit_field)); prep_code.push_str(&format!(" let component_{} = pumpkin_util::text::TextComponent::text(data.{}.clone());\n", wit_field, wit_field));
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &component_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: &component_{},\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: component_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: component_{},\n",
field_name, wit_field
));
} }
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
field_inits.push_str(&format!(" {}: serde_json::to_string(&p.{}).unwrap_or_default(),\n", wit_field, field_name)); field_inits.push_str(&format!(" {}: serde_json::to_string(&p.{}).unwrap_or_default(),\n", wit_field, field_name));
} else { } else {
field_inits.push_str(&format!(" {}: serde_json::to_string(&self.{}).unwrap_or_default(),\n", wit_field, field_name)); field_inits.push_str(&format!(" {}: serde_json::to_string(&self.{}).unwrap_or_default(),\n", wit_field, field_name));
} }
}, }
"BlockPos" => { "BlockPos" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
field_inits.push_str(&format!(" {}: pumpkin_util::math::position::BlockPos::new(data.{}.0, data.{}.1, data.{}.2),\n", field_name, wit_field, wit_field, wit_field)); field_inits.push_str(&format!(" {}: pumpkin_util::math::position::BlockPos::new(data.{}.0, data.{}.1, data.{}.2),\n", field_name, wit_field, wit_field, wit_field));
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
field_inits.push_str(&format!(" {}: (p.{}.0.x, p.{}.0.y, p.{}.0.z),\n", wit_field, field_name, field_name, field_name)); field_inits.push_str(&format!(
" {}: (p.{}.0.x, p.{}.0.y, p.{}.0.z),\n",
wit_field, field_name, field_name, field_name
));
} else { } else {
field_inits.push_str(&format!(" {}: (self.{}.0.x, self.{}.0.y, self.{}.0.z),\n", wit_field, field_name, field_name, field_name)); field_inits.push_str(&format!(" {}: (self.{}.0.x, self.{}.0.y, self.{}.0.z),\n", wit_field, field_name, field_name, field_name));
} }
}, }
"Vector3" => { "Vector3" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
field_inits.push_str(&format!(" {}: pumpkin_util::math::vector3::Vector3::new(data.{}.0 as _, data.{}.1 as _, data.{}.2 as _),\n", field_name, wit_field, wit_field, wit_field)); field_inits.push_str(&format!(" {}: pumpkin_util::math::vector3::Vector3::new(data.{}.0 as _, data.{}.1 as _, data.{}.2 as _),\n", field_name, wit_field, wit_field, wit_field));
@ -314,22 +353,34 @@ fn parse_packet_file(
} else { } else {
field_inits.push_str(&format!(" {}: (self.{}.x as _, self.{}.y as _, self.{}.z as _),\n", wit_field, field_name, field_name, field_name)); field_inits.push_str(&format!(" {}: (self.{}.x as _, self.{}.y as _, self.{}.z as _),\n", wit_field, field_name, field_name, field_name));
} }
}, }
"Uuid" => { "Uuid" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
if is_slice { if is_slice {
prep_code.push_str(&format!(" let vec_{} = data.{}.iter().map(|u| uuid::Uuid::from_u64_pair(u.high, u.low)).collect::<Vec<_>>();\n", wit_field, wit_field)); prep_code.push_str(&format!(" let vec_{} = data.{}.iter().map(|u| uuid::Uuid::from_u64_pair(u.high, u.low)).collect::<Vec<_>>();\n", wit_field, wit_field));
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &vec_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: &vec_{},\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: vec_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: vec_{},\n",
field_name, wit_field
));
} }
} else { } else {
prep_code.push_str(&format!(" let uuid_{} = uuid::Uuid::from_u64_pair(data.{}.high, data.{}.low);\n", wit_field, wit_field, wit_field)); prep_code.push_str(&format!(" let uuid_{} = uuid::Uuid::from_u64_pair(data.{}.high, data.{}.low);\n", wit_field, wit_field, wit_field));
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &uuid_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: &uuid_{},\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: uuid_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: uuid_{},\n",
field_name, wit_field
));
} }
} }
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
@ -346,30 +397,49 @@ fn parse_packet_file(
field_inits.push_str(&format!(" {}: crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::uuid::Uuid {{ high: self.{}.as_u64_pair().1, low: self.{}.as_u64_pair().0 }},\n", wit_field, field_name, field_name)); field_inits.push_str(&format!(" {}: crate::plugin::loader::wasm::wasm_host::wit::v0_1::pumpkin::plugin::uuid::Uuid {{ high: self.{}.as_u64_pair().1, low: self.{}.as_u64_pair().0 }},\n", wit_field, field_name, field_name));
} }
} }
}, }
"i32" | "u32" | "i64" | "u64" | "bool" | "f32" | "f64" | "u8" | "i8" | "u16" | "i16" | "VarInt" => { "i32" | "u32" | "i64" | "u64" | "bool" | "f32" | "f64" | "u8" | "i8"
| "u16" | "i16" | "VarInt" => {
if mode == MappingMode::Serialize { if mode == MappingMode::Serialize {
if is_slice { if is_slice {
if type_ident == "u8" { if type_ident == "u8" {
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &data.{},\n", field_name, wit_field)); field_inits.push_str(&format!(
} else { " {}: &data.{},\n",
field_inits.push_str(&format!(" {}: data.{}.clone(),\n", field_name, wit_field)); field_name, wit_field
} ));
} else {
field_inits.push_str(&format!(
" {}: data.{}.clone(),\n",
field_name, wit_field
));
}
} else if type_ident == "VarInt" { } else if type_ident == "VarInt" {
prep_code.push_str(&format!(" let vec_{}: Vec<VarInt> = data.{}.iter().map(|v| VarInt(*v)).collect();\n", wit_field, wit_field)); prep_code.push_str(&format!(" let vec_{}: Vec<VarInt> = data.{}.iter().map(|v| VarInt(*v)).collect();\n", wit_field, wit_field));
if is_ref { if is_ref {
field_inits.push_str(&format!(" {}: &vec_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: &vec_{},\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: vec_{},\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: vec_{},\n",
field_name, wit_field
));
} }
} else { } else {
field_inits.push_str(&format!(" {}: data.{}.iter().map(|v| *v as _).collect(),\n", field_name, wit_field)); field_inits.push_str(&format!(" {}: data.{}.iter().map(|v| *v as _).collect(),\n", field_name, wit_field));
} }
} else if type_ident == "VarInt" { } else if type_ident == "VarInt" {
field_inits.push_str(&format!(" {}: VarInt(data.{}),\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: VarInt(data.{}),\n",
field_name, wit_field
));
} else { } else {
field_inits.push_str(&format!(" {}: data.{}.try_into().unwrap(),\n", field_name, wit_field)); field_inits.push_str(&format!(
" {}: data.{}.try_into().unwrap(),\n",
field_name, wit_field
));
} }
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
if is_slice { if is_slice {
@ -379,9 +449,15 @@ fn parse_packet_file(
field_inits.push_str(&format!(" {}: p.{}.iter().map(|v| *v as _).collect(),\n", wit_field, field_name)); field_inits.push_str(&format!(" {}: p.{}.iter().map(|v| *v as _).collect(),\n", wit_field, field_name));
} }
} else if type_ident == "VarInt" { } else if type_ident == "VarInt" {
field_inits.push_str(&format!(" {}: p.{}.0.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: p.{}.0.try_into().unwrap(),\n",
wit_field, field_name
));
} else { } else {
field_inits.push_str(&format!(" {}: p.{}.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: p.{}.try_into().unwrap(),\n",
wit_field, field_name
));
} }
} else { } else {
// ToWit // ToWit
@ -392,12 +468,18 @@ fn parse_packet_file(
field_inits.push_str(&format!(" {}: self.{}.iter().map(|v| *v as _).collect(),\n", wit_field, field_name)); field_inits.push_str(&format!(" {}: self.{}.iter().map(|v| *v as _).collect(),\n", wit_field, field_name));
} }
} else if type_ident == "VarInt" { } else if type_ident == "VarInt" {
field_inits.push_str(&format!(" {}: self.{}.0.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: self.{}.0.try_into().unwrap(),\n",
wit_field, field_name
));
} else { } else {
field_inits.push_str(&format!(" {}: self.{}.try_into().unwrap(),\n", wit_field, field_name)); field_inits.push_str(&format!(
" {}: self.{}.try_into().unwrap(),\n",
wit_field, field_name
));
} }
} }
}, }
_ => { _ => {
possible = false; possible = false;
break; break;
@ -432,8 +514,8 @@ fn parse_packet_file(
} else if mode == MappingMode::Deserialize { } else if mode == MappingMode::Deserialize {
if rust_path_prefix.contains("java") { if rust_path_prefix.contains("java") {
if rust_path_prefix.contains("client") { if rust_path_prefix.contains("client") {
// Skip clientbound deserialization for Java for now // Skip clientbound deserialization for Java for now
continue; continue;
} }
output.push_str(&format!( output.push_str(&format!(
" id if id == {}::{}::to_id(version) => {{\n", " id if id == {}::{}::to_id(version) => {{\n",
@ -448,14 +530,14 @@ fn parse_packet_file(
)); ));
} else { } else {
if rust_path_prefix.contains("client") { if rust_path_prefix.contains("client") {
// Skip clientbound deserialization for Bedrock for now // Skip clientbound deserialization for Bedrock for now
continue; continue;
} }
output.push_str(&format!( output.push_str(&format!(
" id if id == <{}::{} as pumpkin_protocol::Packet>::PACKET_ID as i32 => {{\n", " id if id == <{}::{} as pumpkin_protocol::Packet>::PACKET_ID as i32 => {{\n",
rust_path_prefix, struct_name rust_path_prefix, struct_name
)); ));
output.push_str(&format!( output.push_str(&format!(
" use pumpkin_protocol::BServerPacket;\n" " use pumpkin_protocol::BServerPacket;\n"
)); ));
output.push_str(&format!( output.push_str(&format!(
@ -474,11 +556,21 @@ fn parse_packet_file(
} else if mode == MappingMode::ToWit { } else if mode == MappingMode::ToWit {
output.push_str(&format!( output.push_str(&format!(
"impl ToWitClientbound{} for {}::{} {{\n", "impl ToWitClientbound{} for {}::{} {{\n",
if rust_path_prefix.contains("java") { "Java" } else { "Bedrock" }, rust_path_prefix, struct_name_with_lt if rust_path_prefix.contains("java") {
"Java"
} else {
"Bedrock"
},
rust_path_prefix,
struct_name_with_lt
)); ));
output.push_str(&format!( output.push_str(&format!(
" fn to_wit(&self) -> {} {{\n", " fn to_wit(&self) -> {} {{\n",
if rust_path_prefix.contains("java") { "ClientboundPacket" } else { "BClientboundPacket" } if rust_path_prefix.contains("java") {
"ClientboundPacket"
} else {
"BClientboundPacket"
}
)); ));
output.push_str(&prep_code); output.push_str(&prep_code);
output.push_str(&format!( output.push_str(&format!(
@ -494,9 +586,7 @@ fn parse_packet_file(
" if let Some(p) = any.downcast_ref::<{}::{}>() {{\n", " if let Some(p) = any.downcast_ref::<{}::{}>() {{\n",
rust_path_prefix, struct_name rust_path_prefix, struct_name
)); ));
output.push_str(&format!( output.push_str(&format!(" return Some(p.to_wit());\n"));
" return Some(p.to_wit());\n"
));
output.push_str(" }\n"); output.push_str(" }\n");
} }
} }

View File

@ -18,29 +18,32 @@ pub fn map_type(ty: &Type) -> WitType {
"u16" | "i16" => WitType::S32, "u16" | "i16" => WitType::S32,
"Option" => { "Option" => {
if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments
&& let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first() { && let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first()
return WitType::option(map_type(inner_ty)); {
} return WitType::option(map_type(inner_ty));
}
WitType::String WitType::String
} }
"Box" => { "Box" => {
if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments
&& let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first() { && let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first()
return map_type(inner_ty); {
} return map_type(inner_ty);
}
WitType::String WitType::String
} }
"Vec" => { "Vec" => {
if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments if let syn::PathArguments::AngleBracketed(args) = &last_segment.arguments
&& let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first() { && let Some(syn::GenericArgument::Type(inner_ty)) = args.args.first()
// Check if the inner type is u8 {
if let Type::Path(tp) = inner_ty // Check if the inner type is u8
&& tp.path.segments.last().unwrap().ident == "u8" if let Type::Path(tp) = inner_ty
{ && tp.path.segments.last().unwrap().ident == "u8"
return WitType::list(WitType::U8); {
} return WitType::list(WitType::U8);
return WitType::list(map_type(inner_ty));
} }
return WitType::list(map_type(inner_ty));
}
WitType::String WitType::String
} }
"Vector3" | "BlockPos" => { "Vector3" | "BlockPos" => {

File diff suppressed because one or more lines are too long

View File

@ -17,144 +17,164 @@ impl Hash for Attributes {
} }
} }
impl Attributes { impl Attributes {
pub const ARMOR: Self = Self { pub const AIR_DRAG_MODIFIER: Self = Self {
id: 0, id: 0,
default_value: 0f64, default_value: 1f64,
}; };
pub const ARMOR_TOUGHNESS: Self = Self { pub const ARMOR: Self = Self {
id: 1, id: 1,
default_value: 0f64, default_value: 0f64,
}; };
pub const ATTACK_DAMAGE: Self = Self { pub const ARMOR_TOUGHNESS: Self = Self {
id: 2, id: 2,
default_value: 0f64,
};
pub const ATTACK_DAMAGE: Self = Self {
id: 3,
default_value: 2f64, default_value: 2f64,
}; };
pub const ATTACK_KNOCKBACK: Self = Self { pub const ATTACK_KNOCKBACK: Self = Self {
id: 3, id: 4,
default_value: 0f64, default_value: 0f64,
}; };
pub const ATTACK_SPEED: Self = Self { pub const ATTACK_SPEED: Self = Self {
id: 4, id: 5,
default_value: 4f64, default_value: 4f64,
}; };
pub const BLOCK_BREAK_SPEED: Self = Self { pub const BELOW_NAME_DISTANCE: Self = Self {
id: 5,
default_value: 1f64,
};
pub const BLOCK_INTERACTION_RANGE: Self = Self {
id: 6, id: 6,
default_value: 4.5f64, default_value: 10f64,
}; };
pub const BURNING_TIME: Self = Self { pub const BLOCK_BREAK_SPEED: Self = Self {
id: 7, id: 7,
default_value: 1f64, default_value: 1f64,
}; };
pub const CAMERA_DISTANCE: Self = Self { pub const BLOCK_INTERACTION_RANGE: Self = Self {
id: 8, id: 8,
default_value: 4f64, default_value: 4.5f64,
}; };
pub const EXPLOSION_KNOCKBACK_RESISTANCE: Self = Self { pub const BOUNCINESS: Self = Self {
id: 9, id: 9,
default_value: 0f64, default_value: 0f64,
}; };
pub const ENTITY_INTERACTION_RANGE: Self = Self { pub const BURNING_TIME: Self = Self {
id: 10, id: 10,
default_value: 1f64,
};
pub const CAMERA_DISTANCE: Self = Self {
id: 11,
default_value: 4f64,
};
pub const EXPLOSION_KNOCKBACK_RESISTANCE: Self = Self {
id: 12,
default_value: 0f64,
};
pub const ENTITY_INTERACTION_RANGE: Self = Self {
id: 13,
default_value: 3f64, default_value: 3f64,
}; };
pub const FALL_DAMAGE_MULTIPLIER: Self = Self { pub const FALL_DAMAGE_MULTIPLIER: Self = Self {
id: 11, id: 14,
default_value: 1f64, default_value: 1f64,
}; };
pub const FLYING_SPEED: Self = Self { pub const FLYING_SPEED: Self = Self {
id: 12, id: 15,
default_value: 0.4f64, default_value: 0.4f64,
}; };
pub const FOLLOW_RANGE: Self = Self { pub const FOLLOW_RANGE: Self = Self {
id: 13, id: 16,
default_value: 32f64, default_value: 32f64,
}; };
pub const FRICTION_MODIFIER: Self = Self {
id: 17,
default_value: 1f64,
};
pub const GRAVITY: Self = Self { pub const GRAVITY: Self = Self {
id: 14, id: 18,
default_value: 0.08f64, default_value: 0.08f64,
}; };
pub const JUMP_STRENGTH: Self = Self { pub const JUMP_STRENGTH: Self = Self {
id: 15, id: 19,
default_value: 0.41999998688697815f64, default_value: 0.41999998688697815f64,
}; };
pub const KNOCKBACK_RESISTANCE: Self = Self { pub const KNOCKBACK_RESISTANCE: Self = Self {
id: 16,
default_value: 0f64,
};
pub const LUCK: Self = Self {
id: 17,
default_value: 0f64,
};
pub const MAX_ABSORPTION: Self = Self {
id: 18,
default_value: 0f64,
};
pub const MAX_HEALTH: Self = Self {
id: 19,
default_value: 20f64,
};
pub const MINING_EFFICIENCY: Self = Self {
id: 20, id: 20,
default_value: 0f64, default_value: 0f64,
}; };
pub const MOVEMENT_EFFICIENCY: Self = Self { pub const LUCK: Self = Self {
id: 21, id: 21,
default_value: 0f64, default_value: 0f64,
}; };
pub const MOVEMENT_SPEED: Self = Self { pub const MAX_ABSORPTION: Self = Self {
id: 22, id: 22,
default_value: 0f64,
};
pub const MAX_HEALTH: Self = Self {
id: 23,
default_value: 20f64,
};
pub const MINING_EFFICIENCY: Self = Self {
id: 24,
default_value: 0f64,
};
pub const MOVEMENT_EFFICIENCY: Self = Self {
id: 25,
default_value: 0f64,
};
pub const MOVEMENT_SPEED: Self = Self {
id: 26,
default_value: 0.7f64, default_value: 0.7f64,
}; };
pub const NAME_TAG_DISTANCE: Self = Self {
id: 27,
default_value: 64f64,
};
pub const OXYGEN_BONUS: Self = Self { pub const OXYGEN_BONUS: Self = Self {
id: 23, id: 28,
default_value: 0f64, default_value: 0f64,
}; };
pub const SAFE_FALL_DISTANCE: Self = Self { pub const SAFE_FALL_DISTANCE: Self = Self {
id: 24, id: 29,
default_value: 3f64, default_value: 3f64,
}; };
pub const SCALE: Self = Self { pub const SCALE: Self = Self {
id: 25, id: 30,
default_value: 1f64, default_value: 1f64,
}; };
pub const SNEAKING_SPEED: Self = Self { pub const SNEAKING_SPEED: Self = Self {
id: 26, id: 31,
default_value: 0.3f64, default_value: 0.3f64,
}; };
pub const SPAWN_REINFORCEMENTS: Self = Self { pub const SPAWN_REINFORCEMENTS: Self = Self {
id: 27,
default_value: 0f64,
};
pub const STEP_HEIGHT: Self = Self {
id: 28,
default_value: 0.6f64,
};
pub const SUBMERGED_MINING_SPEED: Self = Self {
id: 29,
default_value: 0.2f64,
};
pub const SWEEPING_DAMAGE_RATIO: Self = Self {
id: 30,
default_value: 0f64,
};
pub const TEMPT_RANGE: Self = Self {
id: 31,
default_value: 10f64,
};
pub const WATER_MOVEMENT_EFFICIENCY: Self = Self {
id: 32, id: 32,
default_value: 0f64, default_value: 0f64,
}; };
pub const WAYPOINT_TRANSMIT_RANGE: Self = Self { pub const STEP_HEIGHT: Self = Self {
id: 33, id: 33,
default_value: 0.6f64,
};
pub const SUBMERGED_MINING_SPEED: Self = Self {
id: 34,
default_value: 0.2f64,
};
pub const SWEEPING_DAMAGE_RATIO: Self = Self {
id: 35,
default_value: 0f64,
};
pub const TEMPT_RANGE: Self = Self {
id: 36,
default_value: 10f64,
};
pub const WATER_MOVEMENT_EFFICIENCY: Self = Self {
id: 37,
default_value: 0f64,
};
pub const WAYPOINT_TRANSMIT_RANGE: Self = Self {
id: 38,
default_value: 0f64, default_value: 0f64,
}; };
pub const WAYPOINT_RECEIVE_RANGE: Self = Self { pub const WAYPOINT_RECEIVE_RANGE: Self = Self {
id: 34, id: 39,
default_value: 0f64, default_value: 0f64,
}; };
} }

View File

@ -7088,8 +7088,135 @@ impl Biome {
}, },
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const SUNFLOWER_PLAINS: Biome = Biome { pub const SULFUR_CAVES: Biome = Biome {
id: 53, id: 53,
registry_id: "sulfur_caves",
weather: Weather::new(true, 0.8f32, TemperatureModifier::None, 0.4f32),
features: &[
&[],
&[
crate::placed_feature::PlacedFeature::LakeLavaUnderground,
crate::placed_feature::PlacedFeature::LakeLavaSurface,
crate::placed_feature::PlacedFeature::RootedSulfurSpring,
crate::placed_feature::PlacedFeature::SulfurPool,
],
&[crate::placed_feature::PlacedFeature::AmethystGeode],
&[
crate::placed_feature::PlacedFeature::MonsterRoom,
crate::placed_feature::PlacedFeature::MonsterRoomDeep,
],
&[],
&[],
&[
crate::placed_feature::PlacedFeature::OreDirt,
crate::placed_feature::PlacedFeature::OreGravel,
crate::placed_feature::PlacedFeature::OreGraniteUpper,
crate::placed_feature::PlacedFeature::OreGraniteLower,
crate::placed_feature::PlacedFeature::OreDioriteUpper,
crate::placed_feature::PlacedFeature::OreDioriteLower,
crate::placed_feature::PlacedFeature::OreAndesiteUpper,
crate::placed_feature::PlacedFeature::OreAndesiteLower,
crate::placed_feature::PlacedFeature::OreTuff,
crate::placed_feature::PlacedFeature::OreCoalUpper,
crate::placed_feature::PlacedFeature::OreCoalLower,
crate::placed_feature::PlacedFeature::OreIronUpper,
crate::placed_feature::PlacedFeature::OreIronMiddle,
crate::placed_feature::PlacedFeature::OreIronSmall,
crate::placed_feature::PlacedFeature::OreGold,
crate::placed_feature::PlacedFeature::OreGoldLower,
crate::placed_feature::PlacedFeature::OreRedstone,
crate::placed_feature::PlacedFeature::OreRedstoneLower,
crate::placed_feature::PlacedFeature::OreDiamond,
crate::placed_feature::PlacedFeature::OreDiamondMedium,
crate::placed_feature::PlacedFeature::OreDiamondLarge,
crate::placed_feature::PlacedFeature::OreDiamondBuried,
crate::placed_feature::PlacedFeature::OreLapis,
crate::placed_feature::PlacedFeature::OreLapisBuried,
crate::placed_feature::PlacedFeature::OreCopper,
crate::placed_feature::PlacedFeature::UnderwaterMagma,
crate::placed_feature::PlacedFeature::DiskSand,
crate::placed_feature::PlacedFeature::DiskClay,
crate::placed_feature::PlacedFeature::DiskGravel,
],
&[
crate::placed_feature::PlacedFeature::SulfurSpikeCluster,
crate::placed_feature::PlacedFeature::SulfurSpike,
],
&[
crate::placed_feature::PlacedFeature::SpringWater,
crate::placed_feature::PlacedFeature::SpringLava,
],
&[
crate::placed_feature::PlacedFeature::GlowLichen,
crate::placed_feature::PlacedFeature::PatchTallGrass2,
],
&[crate::placed_feature::PlacedFeature::FreezeTopLayer],
],
creature_spawn_probability: 0.1f32,
spawners: SpawnGroups {
monster: &[
Spawner {
r#type: "minecraft:sulfur_cube",
min_count: 2i32,
max_count: 4i32,
},
Spawner {
r#type: "minecraft:creeper",
min_count: 2i32,
max_count: 2i32,
},
Spawner {
r#type: "minecraft:skeleton",
min_count: 2i32,
max_count: 2i32,
},
Spawner {
r#type: "minecraft:slime",
min_count: 1i32,
max_count: 1i32,
},
Spawner {
r#type: "minecraft:cave_spider",
min_count: 1i32,
max_count: 1i32,
},
Spawner {
r#type: "minecraft:zombie",
min_count: 2i32,
max_count: 2i32,
},
Spawner {
r#type: "minecraft:enderman",
min_count: 1i32,
max_count: 1i32,
},
Spawner {
r#type: "minecraft:witch",
min_count: 1i32,
max_count: 1i32,
},
Spawner {
r#type: "minecraft:zombie_villager",
min_count: 1i32,
max_count: 1i32,
},
],
ambient: &[Spawner {
r#type: "minecraft:bat",
min_count: 8i32,
max_count: 8i32,
}],
axolotls: &[],
creature: &[],
misc: &[],
underground_water_creature: &[],
water_ambient: &[],
water_creature: &[],
},
spawn_costs: phf::phf_map! {},
};
pub const SUNFLOWER_PLAINS: Biome = Biome {
id: 54,
registry_id: "sunflower_plains", registry_id: "sunflower_plains",
weather: Weather::new(true, 0.8f32, TemperatureModifier::None, 0.4f32), weather: Weather::new(true, 0.8f32, TemperatureModifier::None, 0.4f32),
features: &[ features: &[
@ -7255,7 +7382,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const SWAMP: Biome = Biome { pub const SWAMP: Biome = Biome {
id: 54, id: 55,
registry_id: "swamp", registry_id: "swamp",
weather: Weather::new(true, 0.8f32, TemperatureModifier::None, 0.9f32), weather: Weather::new(true, 0.8f32, TemperatureModifier::None, 0.9f32),
features: &[ features: &[
@ -7425,7 +7552,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const TAIGA: Biome = Biome { pub const TAIGA: Biome = Biome {
id: 55, id: 56,
registry_id: "taiga", registry_id: "taiga",
weather: Weather::new(true, 0.25f32, TemperatureModifier::None, 0.8f32), weather: Weather::new(true, 0.25f32, TemperatureModifier::None, 0.8f32),
features: &[ features: &[
@ -7591,7 +7718,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const THE_END: Biome = Biome { pub const THE_END: Biome = Biome {
id: 56, id: 57,
registry_id: "the_end", registry_id: "the_end",
weather: Weather::new(false, 0.5f32, TemperatureModifier::None, 0.5f32), weather: Weather::new(false, 0.5f32, TemperatureModifier::None, 0.5f32),
features: &[ features: &[
@ -7625,7 +7752,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const THE_VOID: Biome = Biome { pub const THE_VOID: Biome = Biome {
id: 57, id: 58,
registry_id: "the_void", registry_id: "the_void",
weather: Weather::new(false, 0.5f32, TemperatureModifier::None, 0.5f32), weather: Weather::new(false, 0.5f32, TemperatureModifier::None, 0.5f32),
features: &[ features: &[
@ -7655,7 +7782,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WARM_OCEAN: Biome = Biome { pub const WARM_OCEAN: Biome = Biome {
id: 58, id: 59,
registry_id: "warm_ocean", registry_id: "warm_ocean",
weather: Weather::new(true, 0.5f32, TemperatureModifier::None, 0.5f32), weather: Weather::new(true, 0.5f32, TemperatureModifier::None, 0.5f32),
features: &[ features: &[
@ -7818,7 +7945,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WARPED_FOREST: Biome = Biome { pub const WARPED_FOREST: Biome = Biome {
id: 59, id: 60,
registry_id: "warped_forest", registry_id: "warped_forest",
weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32), weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32),
features: &[ features: &[
@ -7877,7 +8004,7 @@ impl Biome {
spawn_costs: phf::phf_map! { "enderman" => SpawnCosts { energy_budget : 0.12f64 , charge : 1f64 , } }, spawn_costs: phf::phf_map! { "enderman" => SpawnCosts { energy_budget : 0.12f64 , charge : 1f64 , } },
}; };
pub const WINDSWEPT_FOREST: Biome = Biome { pub const WINDSWEPT_FOREST: Biome = Biome {
id: 60, id: 61,
registry_id: "windswept_forest", registry_id: "windswept_forest",
weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32), weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32),
features: &[ features: &[
@ -8033,7 +8160,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WINDSWEPT_GRAVELLY_HILLS: Biome = Biome { pub const WINDSWEPT_GRAVELLY_HILLS: Biome = Biome {
id: 61, id: 62,
registry_id: "windswept_gravelly_hills", registry_id: "windswept_gravelly_hills",
weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32), weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32),
features: &[ features: &[
@ -8189,7 +8316,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WINDSWEPT_HILLS: Biome = Biome { pub const WINDSWEPT_HILLS: Biome = Biome {
id: 62, id: 63,
registry_id: "windswept_hills", registry_id: "windswept_hills",
weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32), weather: Weather::new(true, 0.2f32, TemperatureModifier::None, 0.3f32),
features: &[ features: &[
@ -8345,7 +8472,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WINDSWEPT_SAVANNA: Biome = Biome { pub const WINDSWEPT_SAVANNA: Biome = Biome {
id: 63, id: 64,
registry_id: "windswept_savanna", registry_id: "windswept_savanna",
weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32), weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32),
features: &[ features: &[
@ -8514,7 +8641,7 @@ impl Biome {
spawn_costs: phf::phf_map! {}, spawn_costs: phf::phf_map! {},
}; };
pub const WOODED_BADLANDS: Biome = Biome { pub const WOODED_BADLANDS: Biome = Biome {
id: 64, id: 65,
registry_id: "wooded_badlands", registry_id: "wooded_badlands",
weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32), weather: Weather::new(false, 2f32, TemperatureModifier::None, 0f32),
features: &[ features: &[
@ -8730,6 +8857,7 @@ impl Biome {
"sparse_jungle" => Some(&Self::SPARSE_JUNGLE), "sparse_jungle" => Some(&Self::SPARSE_JUNGLE),
"stony_peaks" => Some(&Self::STONY_PEAKS), "stony_peaks" => Some(&Self::STONY_PEAKS),
"stony_shore" => Some(&Self::STONY_SHORE), "stony_shore" => Some(&Self::STONY_SHORE),
"sulfur_caves" => Some(&Self::SULFUR_CAVES),
"sunflower_plains" => Some(&Self::SUNFLOWER_PLAINS), "sunflower_plains" => Some(&Self::SUNFLOWER_PLAINS),
"swamp" => Some(&Self::SWAMP), "swamp" => Some(&Self::SWAMP),
"taiga" => Some(&Self::TAIGA), "taiga" => Some(&Self::TAIGA),
@ -8800,18 +8928,19 @@ impl Biome {
50 => Some(&Self::SPARSE_JUNGLE), 50 => Some(&Self::SPARSE_JUNGLE),
51 => Some(&Self::STONY_PEAKS), 51 => Some(&Self::STONY_PEAKS),
52 => Some(&Self::STONY_SHORE), 52 => Some(&Self::STONY_SHORE),
53 => Some(&Self::SUNFLOWER_PLAINS), 53 => Some(&Self::SULFUR_CAVES),
54 => Some(&Self::SWAMP), 54 => Some(&Self::SUNFLOWER_PLAINS),
55 => Some(&Self::TAIGA), 55 => Some(&Self::SWAMP),
56 => Some(&Self::THE_END), 56 => Some(&Self::TAIGA),
57 => Some(&Self::THE_VOID), 57 => Some(&Self::THE_END),
58 => Some(&Self::WARM_OCEAN), 58 => Some(&Self::THE_VOID),
59 => Some(&Self::WARPED_FOREST), 59 => Some(&Self::WARM_OCEAN),
60 => Some(&Self::WINDSWEPT_FOREST), 60 => Some(&Self::WARPED_FOREST),
61 => Some(&Self::WINDSWEPT_GRAVELLY_HILLS), 61 => Some(&Self::WINDSWEPT_FOREST),
62 => Some(&Self::WINDSWEPT_HILLS), 62 => Some(&Self::WINDSWEPT_GRAVELLY_HILLS),
63 => Some(&Self::WINDSWEPT_SAVANNA), 63 => Some(&Self::WINDSWEPT_HILLS),
64 => Some(&Self::WOODED_BADLANDS), 64 => Some(&Self::WINDSWEPT_SAVANNA),
65 => Some(&Self::WOODED_BADLANDS),
_ => None, _ => None,
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -3,121 +3,121 @@
#[allow(clippy::too_many_lines, clippy::match_same_arms)] #[allow(clippy::too_many_lines, clippy::match_same_arms)]
pub const fn get_composter_increase_chance_from_item_id(item_id: u16) -> Option<f32> { pub const fn get_composter_increase_chance_from_item_id(item_id: u16) -> Option<f32> {
match item_id { match item_id {
49 => Some(0.3f32), 76 => Some(0.3f32),
50 => Some(0.3f32), 77 => Some(0.3f32),
51 => Some(0.3f32), 78 => Some(0.3f32),
52 => Some(0.3f32), 79 => Some(0.3f32),
53 => Some(0.3f32), 80 => Some(0.3f32),
54 => Some(0.3f32), 81 => Some(0.3f32),
55 => Some(0.3f32), 82 => Some(0.3f32),
56 => Some(0.3f32), 83 => Some(0.3f32),
57 => Some(0.3f32), 84 => Some(0.3f32),
143 => Some(0.3f32), 170 => Some(0.3f32),
182 => Some(0.3f32),
183 => Some(0.3f32),
184 => Some(0.3f32),
185 => Some(0.3f32),
186 => Some(0.3f32),
187 => Some(0.3f32),
188 => Some(0.3f32),
189 => Some(0.3f32),
190 => Some(0.3f32),
191 => Some(0.3f32),
192 => Some(0.5f32),
202 => Some(0.3f32),
203 => Some(0.65f32),
204 => Some(0.3f32),
205 => Some(0.65f32),
206 => Some(0.85f32),
208 => Some(0.3f32),
209 => Some(0.3f32), 209 => Some(0.3f32),
210 => Some(0.3f32), 210 => Some(0.3f32),
211 => Some(0.3f32), 211 => Some(0.3f32),
212 => Some(0.65f32), 212 => Some(0.3f32),
229 => Some(0.65f32), 213 => Some(0.3f32),
231 => Some(0.65f32), 214 => Some(0.3f32),
215 => Some(0.3f32),
216 => Some(0.3f32),
217 => Some(0.3f32),
218 => Some(0.3f32),
219 => Some(0.5f32),
229 => Some(0.3f32),
230 => Some(0.65f32),
231 => Some(0.3f32),
232 => Some(0.65f32), 232 => Some(0.65f32),
233 => Some(0.65f32), 233 => Some(0.85f32),
234 => Some(0.65f32), 235 => Some(0.3f32),
235 => Some(0.65f32), 236 => Some(0.3f32),
236 => Some(0.65f32), 237 => Some(0.3f32),
237 => Some(0.65f32), 238 => Some(0.3f32),
238 => Some(0.65f32),
239 => Some(0.65f32), 239 => Some(0.65f32),
240 => Some(0.65f32), 256 => Some(0.65f32),
241 => Some(0.65f32), 258 => Some(0.65f32),
242 => Some(0.65f32), 259 => Some(0.65f32),
243 => Some(0.65f32), 260 => Some(0.65f32),
244 => Some(0.65f32), 261 => Some(0.65f32),
245 => Some(0.85f32), 262 => Some(0.65f32),
246 => Some(0.85f32),
247 => Some(0.65f32),
248 => Some(0.65f32),
249 => Some(0.65f32),
250 => Some(0.65f32),
251 => Some(0.65f32),
252 => Some(0.65f32),
253 => Some(0.65f32),
254 => Some(0.5f32),
255 => Some(0.5f32),
256 => Some(0.5f32),
257 => Some(0.5f32),
258 => Some(0.3f32),
259 => Some(0.3f32),
260 => Some(0.3f32),
261 => Some(0.3f32),
262 => Some(0.3f32),
263 => Some(0.65f32), 263 => Some(0.65f32),
264 => Some(0.3f32), 264 => Some(0.65f32),
265 => Some(0.3f32), 265 => Some(0.65f32),
266 => Some(0.65f32), 266 => Some(0.65f32),
267 => Some(0.3f32), 267 => Some(0.65f32),
268 => Some(0.65f32), 268 => Some(0.65f32),
269 => Some(0.3f32), 269 => Some(0.65f32),
341 => Some(0.5f32), 270 => Some(0.65f32),
342 => Some(0.3f32), 271 => Some(0.65f32),
357 => Some(0.65f32), 272 => Some(0.85f32),
358 => Some(0.65f32), 273 => Some(0.85f32),
388 => Some(0.85f32), 274 => Some(0.65f32),
389 => Some(0.85f32), 275 => Some(0.65f32),
390 => Some(0.65f32), 276 => Some(0.65f32),
410 => Some(0.65f32), 277 => Some(0.65f32),
411 => Some(0.5f32), 278 => Some(0.65f32),
412 => Some(0.5f32), 279 => Some(0.65f32),
424 => Some(0.65f32), 280 => Some(0.65f32),
505 => Some(0.85f32), 281 => Some(0.5f32),
525 => Some(0.65f32), 282 => Some(0.5f32),
526 => Some(0.65f32), 283 => Some(0.5f32),
527 => Some(0.65f32), 284 => Some(0.5f32),
528 => Some(0.65f32), 285 => Some(0.3f32),
529 => Some(0.5f32), 286 => Some(0.3f32),
530 => Some(0.65f32), 287 => Some(0.3f32),
577 => Some(0.85f32), 288 => Some(0.3f32),
578 => Some(0.85f32), 289 => Some(0.3f32),
894 => Some(0.65f32), 290 => Some(0.65f32),
952 => Some(0.3f32), 291 => Some(0.3f32),
953 => Some(0.65f32), 292 => Some(0.3f32),
954 => Some(0.85f32), 293 => Some(0.65f32),
1028 => Some(0.5f32), 294 => Some(0.3f32),
1066 => Some(0.65f32), 295 => Some(0.65f32),
1086 => Some(1f32), 296 => Some(0.3f32),
1103 => Some(0.85f32), 368 => Some(0.5f32),
1107 => Some(0.5f32), 369 => Some(0.3f32),
1108 => Some(0.3f32), 384 => Some(0.65f32),
1109 => Some(0.3f32), 385 => Some(0.65f32),
1110 => Some(0.3f32), 415 => Some(0.85f32),
1120 => Some(0.65f32), 416 => Some(0.85f32),
1228 => Some(0.65f32), 417 => Some(0.65f32),
1229 => Some(0.65f32), 437 => Some(0.65f32),
1230 => Some(0.85f32), 438 => Some(0.5f32),
1242 => Some(1f32), 439 => Some(0.5f32),
1286 => Some(0.3f32), 451 => Some(0.65f32),
1287 => Some(0.3f32), 532 => Some(0.85f32),
1288 => Some(0.65f32), 552 => Some(0.65f32),
1289 => Some(0.3f32), 553 => Some(0.65f32),
1374 => Some(0.3f32), 554 => Some(0.65f32),
1375 => Some(0.3f32), 555 => Some(0.65f32),
1378 => Some(0.65f32), 556 => Some(0.5f32),
557 => Some(0.65f32),
604 => Some(0.85f32),
605 => Some(0.85f32),
921 => Some(0.65f32),
979 => Some(0.3f32),
980 => Some(0.65f32),
981 => Some(0.85f32),
1056 => Some(0.5f32),
1094 => Some(0.65f32),
1114 => Some(1f32),
1131 => Some(0.85f32),
1135 => Some(0.5f32),
1136 => Some(0.3f32),
1137 => Some(0.3f32),
1138 => Some(0.3f32),
1148 => Some(0.65f32),
1257 => Some(0.65f32),
1258 => Some(0.65f32),
1259 => Some(0.85f32),
1271 => Some(1f32),
1315 => Some(0.3f32),
1316 => Some(0.3f32),
1317 => Some(0.65f32),
1318 => Some(0.3f32),
1404 => Some(0.3f32),
1405 => Some(0.3f32),
1408 => Some(0.65f32),
_ => None, _ => None,
} }
} }

View File

@ -169,6 +169,7 @@ pub enum ConfiguredFeature {
Pumpkin, Pumpkin,
RedMushroom, RedMushroom,
RootedAzaleaTree, RootedAzaleaTree,
RootedSulfurSpring,
SculkPatchAncientCity, SculkPatchAncientCity,
SculkPatchDeepDark, SculkPatchDeepDark,
SculkVein, SculkVein,
@ -187,6 +188,10 @@ pub enum ConfiguredFeature {
SpringWater, SpringWater,
Spruce, Spruce,
SugarCane, SugarCane,
SulfurPool,
SulfurSpike,
SulfurSpikeCluster,
SulfurSpring,
Sunflower, Sunflower,
SuperBirchBees, SuperBirchBees,
SuperBirchBees0002, SuperBirchBees0002,
@ -395,6 +400,7 @@ impl ConfiguredFeature {
"pumpkin" => Some(Self::Pumpkin), "pumpkin" => Some(Self::Pumpkin),
"red_mushroom" => Some(Self::RedMushroom), "red_mushroom" => Some(Self::RedMushroom),
"rooted_azalea_tree" => Some(Self::RootedAzaleaTree), "rooted_azalea_tree" => Some(Self::RootedAzaleaTree),
"rooted_sulfur_spring" => Some(Self::RootedSulfurSpring),
"sculk_patch_ancient_city" => Some(Self::SculkPatchAncientCity), "sculk_patch_ancient_city" => Some(Self::SculkPatchAncientCity),
"sculk_patch_deep_dark" => Some(Self::SculkPatchDeepDark), "sculk_patch_deep_dark" => Some(Self::SculkPatchDeepDark),
"sculk_vein" => Some(Self::SculkVein), "sculk_vein" => Some(Self::SculkVein),
@ -413,6 +419,10 @@ impl ConfiguredFeature {
"spring_water" => Some(Self::SpringWater), "spring_water" => Some(Self::SpringWater),
"spruce" => Some(Self::Spruce), "spruce" => Some(Self::Spruce),
"sugar_cane" => Some(Self::SugarCane), "sugar_cane" => Some(Self::SugarCane),
"sulfur_pool" => Some(Self::SulfurPool),
"sulfur_spike" => Some(Self::SulfurSpike),
"sulfur_spike_cluster" => Some(Self::SulfurSpikeCluster),
"sulfur_spring" => Some(Self::SulfurSpring),
"sunflower" => Some(Self::Sunflower), "sunflower" => Some(Self::Sunflower),
"super_birch_bees" => Some(Self::SuperBirchBees), "super_birch_bees" => Some(Self::SuperBirchBees),
"super_birch_bees_0002" => Some(Self::SuperBirchBees0002), "super_birch_bees_0002" => Some(Self::SuperBirchBees0002),
@ -621,6 +631,7 @@ impl ConfiguredFeature {
Self::Pumpkin => "pumpkin", Self::Pumpkin => "pumpkin",
Self::RedMushroom => "red_mushroom", Self::RedMushroom => "red_mushroom",
Self::RootedAzaleaTree => "rooted_azalea_tree", Self::RootedAzaleaTree => "rooted_azalea_tree",
Self::RootedSulfurSpring => "rooted_sulfur_spring",
Self::SculkPatchAncientCity => "sculk_patch_ancient_city", Self::SculkPatchAncientCity => "sculk_patch_ancient_city",
Self::SculkPatchDeepDark => "sculk_patch_deep_dark", Self::SculkPatchDeepDark => "sculk_patch_deep_dark",
Self::SculkVein => "sculk_vein", Self::SculkVein => "sculk_vein",
@ -639,6 +650,10 @@ impl ConfiguredFeature {
Self::SpringWater => "spring_water", Self::SpringWater => "spring_water",
Self::Spruce => "spruce", Self::Spruce => "spruce",
Self::SugarCane => "sugar_cane", Self::SugarCane => "sugar_cane",
Self::SulfurPool => "sulfur_pool",
Self::SulfurSpike => "sulfur_spike",
Self::SulfurSpikeCluster => "sulfur_spike_cluster",
Self::SulfurSpring => "sulfur_spring",
Self::Sunflower => "sunflower", Self::Sunflower => "sunflower",
Self::SuperBirchBees => "super_birch_bees", Self::SuperBirchBees => "super_birch_bees",
Self::SuperBirchBees0002 => "super_birch_bees_0002", Self::SuperBirchBees0002 => "super_birch_bees_0002",

File diff suppressed because one or more lines are too long

View File

@ -367,13 +367,21 @@ impl DamageType {
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 41, id: 41,
}; };
pub const SULFUR_CUBE_HOT: DamageType = DamageType {
death_message_type: DeathMessageType::Default,
exhaustion: 0.1f32,
effects: Some(DamageEffects::Burning),
message_id: "sulfurCubeHot",
scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 42,
};
pub const SWEET_BERRY_BUSH: DamageType = DamageType { pub const SWEET_BERRY_BUSH: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
exhaustion: 0.1f32, exhaustion: 0.1f32,
effects: Some(DamageEffects::Poking), effects: Some(DamageEffects::Poking),
message_id: "sweetBerryBush", message_id: "sweetBerryBush",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 42, id: 43,
}; };
pub const THORNS: DamageType = DamageType { pub const THORNS: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -381,7 +389,7 @@ impl DamageType {
effects: Some(DamageEffects::Thorns), effects: Some(DamageEffects::Thorns),
message_id: "thorns", message_id: "thorns",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 43, id: 44,
}; };
pub const THROWN: DamageType = DamageType { pub const THROWN: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -389,7 +397,7 @@ impl DamageType {
effects: None, effects: None,
message_id: "thrown", message_id: "thrown",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 44, id: 45,
}; };
pub const TRIDENT: DamageType = DamageType { pub const TRIDENT: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -397,7 +405,7 @@ impl DamageType {
effects: None, effects: None,
message_id: "trident", message_id: "trident",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 45, id: 46,
}; };
pub const UNATTRIBUTED_FIREBALL: DamageType = DamageType { pub const UNATTRIBUTED_FIREBALL: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -405,7 +413,7 @@ impl DamageType {
effects: Some(DamageEffects::Burning), effects: Some(DamageEffects::Burning),
message_id: "onFire", message_id: "onFire",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 46, id: 47,
}; };
pub const WIND_CHARGE: DamageType = DamageType { pub const WIND_CHARGE: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -413,7 +421,7 @@ impl DamageType {
effects: None, effects: None,
message_id: "mob", message_id: "mob",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 47, id: 48,
}; };
pub const WITHER: DamageType = DamageType { pub const WITHER: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -421,7 +429,7 @@ impl DamageType {
effects: None, effects: None,
message_id: "wither", message_id: "wither",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 48, id: 49,
}; };
pub const WITHER_SKULL: DamageType = DamageType { pub const WITHER_SKULL: DamageType = DamageType {
death_message_type: DeathMessageType::Default, death_message_type: DeathMessageType::Default,
@ -429,7 +437,7 @@ impl DamageType {
effects: None, effects: None,
message_id: "witherSkull", message_id: "witherSkull",
scaling: DamageScaling::WhenCausedByLivingNonPlayer, scaling: DamageScaling::WhenCausedByLivingNonPlayer,
id: 49, id: 50,
}; };
#[doc = r" Try to parse a damage type from a resource location string."] #[doc = r" Try to parse a damage type from a resource location string."]
pub fn from_name(name: &str) -> Option<Self> { pub fn from_name(name: &str) -> Option<Self> {
@ -476,6 +484,7 @@ impl DamageType {
"stalagmite" => Some(Self::STALAGMITE), "stalagmite" => Some(Self::STALAGMITE),
"starve" => Some(Self::STARVE), "starve" => Some(Self::STARVE),
"sting" => Some(Self::STING), "sting" => Some(Self::STING),
"sulfur_cube_hot" => Some(Self::SULFUR_CUBE_HOT),
"sweet_berry_bush" => Some(Self::SWEET_BERRY_BUSH), "sweet_berry_bush" => Some(Self::SWEET_BERRY_BUSH),
"thorns" => Some(Self::THORNS), "thorns" => Some(Self::THORNS),
"thrown" => Some(Self::THROWN), "thrown" => Some(Self::THROWN),

View File

@ -81,38 +81,39 @@ pub enum DataComponent {
Container = 75u8, Container = 75u8,
BlockState = 76u8, BlockState = 76u8,
Bees = 77u8, Bees = 77u8,
Lock = 78u8, SulfurCubeContent = 78u8,
ContainerLoot = 79u8, Lock = 79u8,
BreakSound = 80u8, ContainerLoot = 80u8,
VillagerVariant = 81u8, BreakSound = 81u8,
WolfVariant = 82u8, VillagerVariant = 82u8,
WolfSoundVariant = 83u8, WolfVariant = 83u8,
WolfCollar = 84u8, WolfSoundVariant = 84u8,
FoxVariant = 85u8, WolfCollar = 85u8,
SalmonSize = 86u8, FoxVariant = 86u8,
ParrotVariant = 87u8, SalmonSize = 87u8,
TropicalFishPattern = 88u8, ParrotVariant = 88u8,
TropicalFishBaseColor = 89u8, TropicalFishPattern = 89u8,
TropicalFishPatternColor = 90u8, TropicalFishBaseColor = 90u8,
MooshroomVariant = 91u8, TropicalFishPatternColor = 91u8,
RabbitVariant = 92u8, MooshroomVariant = 92u8,
PigVariant = 93u8, RabbitVariant = 93u8,
PigSoundVariant = 94u8, PigVariant = 94u8,
CowVariant = 95u8, PigSoundVariant = 95u8,
CowSoundVariant = 96u8, CowVariant = 96u8,
ChickenVariant = 97u8, CowSoundVariant = 97u8,
ChickenSoundVariant = 98u8, ChickenVariant = 98u8,
ZombieNautilusVariant = 99u8, ChickenSoundVariant = 99u8,
FrogVariant = 100u8, ZombieNautilusVariant = 100u8,
HorseVariant = 101u8, FrogVariant = 101u8,
PaintingVariant = 102u8, HorseVariant = 102u8,
LlamaVariant = 103u8, PaintingVariant = 103u8,
AxolotlVariant = 104u8, LlamaVariant = 104u8,
CatVariant = 105u8, AxolotlVariant = 105u8,
CatSoundVariant = 106u8, CatVariant = 106u8,
CatCollar = 107u8, CatSoundVariant = 107u8,
SheepColor = 108u8, CatCollar = 108u8,
ShulkerColor = 109u8, SheepColor = 109u8,
ShulkerColor = 110u8,
} }
impl DataComponent { impl DataComponent {
#[must_use] #[must_use]
@ -201,38 +202,39 @@ impl DataComponent {
75u8 => Some(Self::Container), 75u8 => Some(Self::Container),
76u8 => Some(Self::BlockState), 76u8 => Some(Self::BlockState),
77u8 => Some(Self::Bees), 77u8 => Some(Self::Bees),
78u8 => Some(Self::Lock), 78u8 => Some(Self::SulfurCubeContent),
79u8 => Some(Self::ContainerLoot), 79u8 => Some(Self::Lock),
80u8 => Some(Self::BreakSound), 80u8 => Some(Self::ContainerLoot),
81u8 => Some(Self::VillagerVariant), 81u8 => Some(Self::BreakSound),
82u8 => Some(Self::WolfVariant), 82u8 => Some(Self::VillagerVariant),
83u8 => Some(Self::WolfSoundVariant), 83u8 => Some(Self::WolfVariant),
84u8 => Some(Self::WolfCollar), 84u8 => Some(Self::WolfSoundVariant),
85u8 => Some(Self::FoxVariant), 85u8 => Some(Self::WolfCollar),
86u8 => Some(Self::SalmonSize), 86u8 => Some(Self::FoxVariant),
87u8 => Some(Self::ParrotVariant), 87u8 => Some(Self::SalmonSize),
88u8 => Some(Self::TropicalFishPattern), 88u8 => Some(Self::ParrotVariant),
89u8 => Some(Self::TropicalFishBaseColor), 89u8 => Some(Self::TropicalFishPattern),
90u8 => Some(Self::TropicalFishPatternColor), 90u8 => Some(Self::TropicalFishBaseColor),
91u8 => Some(Self::MooshroomVariant), 91u8 => Some(Self::TropicalFishPatternColor),
92u8 => Some(Self::RabbitVariant), 92u8 => Some(Self::MooshroomVariant),
93u8 => Some(Self::PigVariant), 93u8 => Some(Self::RabbitVariant),
94u8 => Some(Self::PigSoundVariant), 94u8 => Some(Self::PigVariant),
95u8 => Some(Self::CowVariant), 95u8 => Some(Self::PigSoundVariant),
96u8 => Some(Self::CowSoundVariant), 96u8 => Some(Self::CowVariant),
97u8 => Some(Self::ChickenVariant), 97u8 => Some(Self::CowSoundVariant),
98u8 => Some(Self::ChickenSoundVariant), 98u8 => Some(Self::ChickenVariant),
99u8 => Some(Self::ZombieNautilusVariant), 99u8 => Some(Self::ChickenSoundVariant),
100u8 => Some(Self::FrogVariant), 100u8 => Some(Self::ZombieNautilusVariant),
101u8 => Some(Self::HorseVariant), 101u8 => Some(Self::FrogVariant),
102u8 => Some(Self::PaintingVariant), 102u8 => Some(Self::HorseVariant),
103u8 => Some(Self::LlamaVariant), 103u8 => Some(Self::PaintingVariant),
104u8 => Some(Self::AxolotlVariant), 104u8 => Some(Self::LlamaVariant),
105u8 => Some(Self::CatVariant), 105u8 => Some(Self::AxolotlVariant),
106u8 => Some(Self::CatSoundVariant), 106u8 => Some(Self::CatVariant),
107u8 => Some(Self::CatCollar), 107u8 => Some(Self::CatSoundVariant),
108u8 => Some(Self::SheepColor), 108u8 => Some(Self::CatCollar),
109u8 => Some(Self::ShulkerColor), 109u8 => Some(Self::SheepColor),
110u8 => Some(Self::ShulkerColor),
_ => None, _ => None,
} }
} }
@ -318,6 +320,7 @@ impl DataComponent {
"minecraft:container" => Some(Self::Container), "minecraft:container" => Some(Self::Container),
"minecraft:block_state" => Some(Self::BlockState), "minecraft:block_state" => Some(Self::BlockState),
"minecraft:bees" => Some(Self::Bees), "minecraft:bees" => Some(Self::Bees),
"minecraft:sulfur_cube_content" => Some(Self::SulfurCubeContent),
"minecraft:lock" => Some(Self::Lock), "minecraft:lock" => Some(Self::Lock),
"minecraft:container_loot" => Some(Self::ContainerLoot), "minecraft:container_loot" => Some(Self::ContainerLoot),
"minecraft:break_sound" => Some(Self::BreakSound), "minecraft:break_sound" => Some(Self::BreakSound),
@ -435,6 +438,7 @@ impl DataComponent {
Self::Container => "minecraft:container", Self::Container => "minecraft:container",
Self::BlockState => "minecraft:block_state", Self::BlockState => "minecraft:block_state",
Self::Bees => "minecraft:bees", Self::Bees => "minecraft:bees",
Self::SulfurCubeContent => "minecraft:sulfur_cube_content",
Self::Lock => "minecraft:lock", Self::Lock => "minecraft:lock",
Self::ContainerLoot => "minecraft:container_loot", Self::ContainerLoot => "minecraft:container_loot",
Self::BreakSound => "minecraft:break_sound", Self::BreakSound => "minecraft:break_sound",

View File

@ -1,5 +1,5 @@
/* This file is generated. Do not edit manually. */ /* This file is generated. Do not edit manually. */
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_20_5: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_20_5: &[u16] = &[
10, 17, 0, 1, 2, 3, 4, 5, 17, 10, 6, 7, 10, 17, 8, 9, 11, 12, 13, 14, 14, 15, 16, 10, 17, 18, 10, 17, 0, 1, 2, 3, 4, 5, 17, 10, 6, 7, 10, 17, 8, 9, 11, 12, 13, 14, 14, 15, 16, 10, 17, 18,
19, 20, 43, 21, 22, 116, 23, 10, 17, 24, 25, 26, 27, 28, 29, 33, 34, 31, 32, 30, 35, 36, 37, 19, 20, 43, 21, 22, 116, 23, 10, 17, 24, 25, 26, 27, 28, 29, 33, 34, 31, 32, 30, 35, 36, 37,
38, 39, 40, 62, 41, 42, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 38, 39, 40, 62, 41, 42, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
@ -8,7 +8,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_20_5: &[u16] = &[
97, 96, 98, 99, 100, 10, 17, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 97, 96, 98, 99, 100, 10, 17, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 48, 126, 127, 128, 129, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 48, 126, 127, 128, 129,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21: &[u16] = &[
10, 17, 0, 1, 2, 3, 4, 5, 17, 10, 6, 7, 10, 17, 8, 9, 11, 12, 13, 14, 14, 15, 16, 10, 17, 18, 10, 17, 0, 1, 2, 3, 4, 5, 17, 10, 6, 7, 10, 17, 8, 9, 11, 12, 13, 14, 14, 15, 16, 10, 17, 18,
19, 20, 43, 21, 22, 116, 23, 10, 17, 24, 25, 26, 27, 28, 29, 33, 34, 31, 32, 30, 35, 36, 37, 19, 20, 43, 21, 22, 116, 23, 10, 17, 24, 25, 26, 27, 28, 29, 33, 34, 31, 32, 30, 35, 36, 37,
38, 39, 40, 62, 41, 42, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 38, 39, 40, 62, 41, 42, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
@ -17,7 +17,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21: &[u16] = &[
97, 96, 98, 99, 100, 10, 17, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 97, 96, 98, 99, 100, 10, 17, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 48, 126, 127, 128, 129, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 48, 126, 127, 128, 129,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_2: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_2: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 54, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 25, 26, 54, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
@ -27,7 +27,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_2: &[u16] = &[
130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 59, 146, 147, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 59, 146, 147,
148, 149, 148, 149,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_4: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_4: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
@ -37,7 +37,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_4: &[u16] = &[
130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 58, 145, 146, 147, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 58, 145, 146, 147,
148, 148,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_5: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_5: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
@ -47,7 +47,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_5: &[u16] = &[
130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 58, 146, 147, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 58, 146, 147,
148, 149, 148, 149,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_6: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_6: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
@ -57,7 +57,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_6: &[u16] = &[
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 59, 147, 148, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 59, 147, 148,
149, 150, 149, 150,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_7: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_7: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 25, 26, 53, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
@ -67,7 +67,7 @@ pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_7: &[u16] = &[
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 59, 147, 148, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 59, 147, 148,
149, 150, 149, 150,
]; ];
pub static ENTITY_ID_REMAP_V_26_1_TO_V_1_21_9: &[u16] = &[ pub static ENTITY_ID_REMAP_V_26_2_TO_V_1_21_9: &[u16] = &[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
@ -83,35 +83,35 @@ pub fn remap_entity_id_for_version(
version: pumpkin_util::version::JavaMinecraftVersion, version: pumpkin_util::version::JavaMinecraftVersion,
) -> u16 { ) -> u16 {
match version { match version {
pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => ENTITY_ID_REMAP_V_26_1_TO_V_1_20_5 pumpkin_util::version::JavaMinecraftVersion::V_1_20_5 => ENTITY_ID_REMAP_V_26_2_TO_V_1_20_5
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21 pumpkin_util::version::JavaMinecraftVersion::V_1_21 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_2 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_2 pumpkin_util::version::JavaMinecraftVersion::V_1_21_2 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_2
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_4 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_4 pumpkin_util::version::JavaMinecraftVersion::V_1_21_4 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_4
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_5 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_5 pumpkin_util::version::JavaMinecraftVersion::V_1_21_5 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_5
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_6 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_6 pumpkin_util::version::JavaMinecraftVersion::V_1_21_6 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_6
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_7 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_7 pumpkin_util::version::JavaMinecraftVersion::V_1_21_7 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_7
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),
pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 => ENTITY_ID_REMAP_V_26_1_TO_V_1_21_9 pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 => ENTITY_ID_REMAP_V_26_2_TO_V_1_21_9
.get(usize::from(entity_id)) .get(usize::from(entity_id))
.copied() .copied()
.unwrap_or(0), .unwrap_or(0),

View File

@ -54,6 +54,7 @@ pub enum EntityStatus {
TamingSucceeded = 7, TamingSucceeded = 7,
Teleport = 46, Teleport = 46,
TendrilsShiver = 61, TendrilsShiver = 61,
TntPrime = 70,
TrustingFailed = 40, TrustingFailed = 40,
TrustingSucceeded = 41, TrustingSucceeded = 41,
UseItemComplete = 9, UseItemComplete = 9,

File diff suppressed because it is too large Load Diff

View File

@ -2,44 +2,44 @@
#[must_use] #[must_use]
pub const fn get_potted_item(item_id: u16) -> u16 { pub const fn get_potted_item(item_id: u16) -> u16 {
match item_id { match item_id {
49 => 413, 76 => 413,
50 => 414, 77 => 414,
51 => 415, 78 => 415,
52 => 416, 79 => 416,
53 => 417, 80 => 417,
54 => 418, 81 => 418,
55 => 419, 82 => 419,
56 => 420, 83 => 420,
57 => 421, 84 => 421,
203 => 422, 230 => 422,
205 => 1148, 232 => 1176,
206 => 1149, 233 => 1177,
207 => 439, 234 => 439,
229 => 423, 256 => 423,
230 => 424, 257 => 424,
231 => 1165, 258 => 1193,
232 => 1166, 259 => 1194,
233 => 425, 260 => 425,
234 => 426, 261 => 426,
235 => 427, 262 => 427,
236 => 428, 263 => 428,
237 => 429, 264 => 429,
238 => 430, 265 => 430,
239 => 431, 266 => 431,
240 => 432, 267 => 432,
241 => 433, 268 => 433,
242 => 434, 269 => 434,
243 => 435, 270 => 435,
244 => 436, 271 => 436,
245 => 412, 272 => 412,
248 => 438, 275 => 438,
249 => 437, 276 => 437,
250 => 919, 277 => 919,
251 => 920, 278 => 920,
252 => 921, 279 => 921,
253 => 922, 280 => 922,
270 => 793, 297 => 793,
341 => 440, 368 => 440,
_ => 0, _ => 0,
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@ pub enum GameEvent {
BlockDetach, BlockDetach,
BlockOpen, BlockOpen,
BlockPlace, BlockPlace,
Bounce,
ContainerClose, ContainerClose,
ContainerOpen, ContainerOpen,
Drink, Drink,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,7 @@ pub enum JukeboxSong {
Id13, Id13,
Id5, Id5,
Blocks, Blocks,
Bounce,
Cat, Cat,
Chirp, Chirp,
Creator, Creator,
@ -33,6 +34,7 @@ impl JukeboxSong {
"13" => Some(Self::Id13), "13" => Some(Self::Id13),
"5" => Some(Self::Id5), "5" => Some(Self::Id5),
"blocks" => Some(Self::Blocks), "blocks" => Some(Self::Blocks),
"bounce" => Some(Self::Bounce),
"cat" => Some(Self::Cat), "cat" => Some(Self::Cat),
"chirp" => Some(Self::Chirp), "chirp" => Some(Self::Chirp),
"creator" => Some(Self::Creator), "creator" => Some(Self::Creator),
@ -61,6 +63,7 @@ impl JukeboxSong {
Self::Id13 => "13", Self::Id13 => "13",
Self::Id5 => "5", Self::Id5 => "5",
Self::Blocks => "blocks", Self::Blocks => "blocks",
Self::Bounce => "bounce",
Self::Cat => "cat", Self::Cat => "cat",
Self::Chirp => "chirp", Self::Chirp => "chirp",
Self::Creator => "creator", Self::Creator => "creator",
@ -88,23 +91,24 @@ impl JukeboxSong {
Self::Id13 => 1u32, Self::Id13 => 1u32,
Self::Id5 => 2u32, Self::Id5 => 2u32,
Self::Blocks => 3u32, Self::Blocks => 3u32,
Self::Cat => 4u32, Self::Bounce => 4u32,
Self::Chirp => 5u32, Self::Cat => 5u32,
Self::Creator => 6u32, Self::Chirp => 6u32,
Self::CreatorMusicBox => 7u32, Self::Creator => 7u32,
Self::Far => 8u32, Self::CreatorMusicBox => 8u32,
Self::LavaChicken => 9u32, Self::Far => 9u32,
Self::Mall => 10u32, Self::LavaChicken => 10u32,
Self::Mellohi => 11u32, Self::Mall => 11u32,
Self::Otherside => 12u32, Self::Mellohi => 12u32,
Self::Pigstep => 13u32, Self::Otherside => 13u32,
Self::Precipice => 14u32, Self::Pigstep => 14u32,
Self::Relic => 15u32, Self::Precipice => 15u32,
Self::Stal => 16u32, Self::Relic => 16u32,
Self::Strad => 17u32, Self::Stal => 17u32,
Self::Tears => 18u32, Self::Strad => 18u32,
Self::Wait => 19u32, Self::Tears => 19u32,
Self::Ward => 20u32, Self::Wait => 20u32,
Self::Ward => 21u32,
} }
} }
#[doc = r" Returns the comparator output value (0-15) for this song."] #[doc = r" Returns the comparator output value (0-15) for this song."]
@ -116,6 +120,7 @@ impl JukeboxSong {
Self::Id13 => 1u8, Self::Id13 => 1u8,
Self::Id5 => 15u8, Self::Id5 => 15u8,
Self::Blocks => 3u8, Self::Blocks => 3u8,
Self::Bounce => 0u8,
Self::Cat => 2u8, Self::Cat => 2u8,
Self::Chirp => 4u8, Self::Chirp => 4u8,
Self::Creator => 12u8, Self::Creator => 12u8,
@ -144,6 +149,7 @@ impl JukeboxSong {
Self::Id13 => 178u32, Self::Id13 => 178u32,
Self::Id5 => 178u32, Self::Id5 => 178u32,
Self::Blocks => 345u32, Self::Blocks => 345u32,
Self::Bounce => 0u32,
Self::Cat => 185u32, Self::Cat => 185u32,
Self::Chirp => 185u32, Self::Chirp => 185u32,
Self::Creator => 176u32, Self::Creator => 176u32,

View File

@ -10,6 +10,7 @@ pub struct MetaDataType {
v1_21_9: i32, v1_21_9: i32,
v1_21_11: i32, v1_21_11: i32,
v26_1: i32, v26_1: i32,
v26_2: i32,
} }
impl MetaDataType { impl MetaDataType {
pub const ARM: MetaDataType = MetaDataType { pub const ARM: MetaDataType = MetaDataType {
@ -22,6 +23,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: 38i32, v1_21_11: 38i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const ARMADILLO_STATE: MetaDataType = MetaDataType { pub const ARMADILLO_STATE: MetaDataType = MetaDataType {
v1_21: 28i32, v1_21: 28i32,
@ -33,6 +35,7 @@ impl MetaDataType {
v1_21_9: 31i32, v1_21_9: 31i32,
v1_21_11: 32i32, v1_21_11: 32i32,
v26_1: 36i32, v26_1: 36i32,
v26_2: 36i32,
}; };
pub const BLOCK_POS: MetaDataType = MetaDataType { pub const BLOCK_POS: MetaDataType = MetaDataType {
v1_21: 10i32, v1_21: 10i32,
@ -44,6 +47,7 @@ impl MetaDataType {
v1_21_9: 10i32, v1_21_9: 10i32,
v1_21_11: 10i32, v1_21_11: 10i32,
v26_1: 10i32, v26_1: 10i32,
v26_2: 10i32,
}; };
pub const BLOCK_STATE: MetaDataType = MetaDataType { pub const BLOCK_STATE: MetaDataType = MetaDataType {
v1_21: 14i32, v1_21: 14i32,
@ -55,6 +59,7 @@ impl MetaDataType {
v1_21_9: 14i32, v1_21_9: 14i32,
v1_21_11: 14i32, v1_21_11: 14i32,
v26_1: 14i32, v26_1: 14i32,
v26_2: 14i32,
}; };
pub const BOOLEAN: MetaDataType = MetaDataType { pub const BOOLEAN: MetaDataType = MetaDataType {
v1_21: 8i32, v1_21: 8i32,
@ -66,6 +71,7 @@ impl MetaDataType {
v1_21_9: 8i32, v1_21_9: 8i32,
v1_21_11: 8i32, v1_21_11: 8i32,
v26_1: 8i32, v26_1: 8i32,
v26_2: 8i32,
}; };
pub const BYTE: MetaDataType = MetaDataType { pub const BYTE: MetaDataType = MetaDataType {
v1_21: 0i32, v1_21: 0i32,
@ -77,6 +83,7 @@ impl MetaDataType {
v1_21_9: 0i32, v1_21_9: 0i32,
v1_21_11: 0i32, v1_21_11: 0i32,
v26_1: 0i32, v26_1: 0i32,
v26_2: 0i32,
}; };
pub const CAT_SOUND_VARIANT: MetaDataType = MetaDataType { pub const CAT_SOUND_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -88,6 +95,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 22i32, v26_1: 22i32,
v26_2: 22i32,
}; };
pub const CAT_VARIANT: MetaDataType = MetaDataType { pub const CAT_VARIANT: MetaDataType = MetaDataType {
v1_21: 22i32, v1_21: 22i32,
@ -99,6 +107,7 @@ impl MetaDataType {
v1_21_9: 21i32, v1_21_9: 21i32,
v1_21_11: 21i32, v1_21_11: 21i32,
v26_1: 21i32, v26_1: 21i32,
v26_2: 21i32,
}; };
pub const CHICKEN_SOUND_VARIANT: MetaDataType = MetaDataType { pub const CHICKEN_SOUND_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -110,6 +119,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 31i32, v26_1: 31i32,
v26_2: 31i32,
}; };
pub const CHICKEN_VARIANT: MetaDataType = MetaDataType { pub const CHICKEN_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -121,6 +131,7 @@ impl MetaDataType {
v1_21_9: 27i32, v1_21_9: 27i32,
v1_21_11: 27i32, v1_21_11: 27i32,
v26_1: 30i32, v26_1: 30i32,
v26_2: 30i32,
}; };
pub const COMPONENT: MetaDataType = MetaDataType { pub const COMPONENT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -132,6 +143,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 5i32, v26_1: 5i32,
v26_2: 5i32,
}; };
pub const COPPER_GOLEM_STATE: MetaDataType = MetaDataType { pub const COPPER_GOLEM_STATE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -143,6 +155,7 @@ impl MetaDataType {
v1_21_9: 32i32, v1_21_9: 32i32,
v1_21_11: 33i32, v1_21_11: 33i32,
v26_1: 37i32, v26_1: 37i32,
v26_2: 37i32,
}; };
pub const COW_SOUND_VARIANT: MetaDataType = MetaDataType { pub const COW_SOUND_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -154,6 +167,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 24i32, v26_1: 24i32,
v26_2: 24i32,
}; };
pub const COW_VARIANT: MetaDataType = MetaDataType { pub const COW_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -165,6 +179,7 @@ impl MetaDataType {
v1_21_9: 22i32, v1_21_9: 22i32,
v1_21_11: 22i32, v1_21_11: 22i32,
v26_1: 23i32, v26_1: 23i32,
v26_2: 23i32,
}; };
pub const DIRECTION: MetaDataType = MetaDataType { pub const DIRECTION: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -176,6 +191,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 12i32, v26_1: 12i32,
v26_2: 12i32,
}; };
pub const ENTITY_POSE: MetaDataType = MetaDataType { pub const ENTITY_POSE: MetaDataType = MetaDataType {
v1_21: 21i32, v1_21: 21i32,
@ -187,6 +203,7 @@ impl MetaDataType {
v1_21_9: 20i32, v1_21_9: 20i32,
v1_21_11: 20i32, v1_21_11: 20i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const FACING: MetaDataType = MetaDataType { pub const FACING: MetaDataType = MetaDataType {
v1_21: 12i32, v1_21: 12i32,
@ -198,6 +215,7 @@ impl MetaDataType {
v1_21_9: 12i32, v1_21_9: 12i32,
v1_21_11: 12i32, v1_21_11: 12i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const FLOAT: MetaDataType = MetaDataType { pub const FLOAT: MetaDataType = MetaDataType {
v1_21: 3i32, v1_21: 3i32,
@ -209,6 +227,7 @@ impl MetaDataType {
v1_21_9: 3i32, v1_21_9: 3i32,
v1_21_11: 3i32, v1_21_11: 3i32,
v26_1: 3i32, v26_1: 3i32,
v26_2: 3i32,
}; };
pub const FROG_VARIANT: MetaDataType = MetaDataType { pub const FROG_VARIANT: MetaDataType = MetaDataType {
v1_21: 24i32, v1_21: 24i32,
@ -220,6 +239,7 @@ impl MetaDataType {
v1_21_9: 25i32, v1_21_9: 25i32,
v1_21_11: 25i32, v1_21_11: 25i32,
v26_1: 27i32, v26_1: 27i32,
v26_2: 27i32,
}; };
pub const HUMANOID_ARM: MetaDataType = MetaDataType { pub const HUMANOID_ARM: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -231,6 +251,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 42i32, v26_1: 42i32,
v26_2: 42i32,
}; };
pub const INT: MetaDataType = MetaDataType { pub const INT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -242,6 +263,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 1i32, v26_1: 1i32,
v26_2: 1i32,
}; };
pub const INTEGER: MetaDataType = MetaDataType { pub const INTEGER: MetaDataType = MetaDataType {
v1_21: 1i32, v1_21: 1i32,
@ -253,6 +275,7 @@ impl MetaDataType {
v1_21_9: 1i32, v1_21_9: 1i32,
v1_21_11: 1i32, v1_21_11: 1i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const ITEM_STACK: MetaDataType = MetaDataType { pub const ITEM_STACK: MetaDataType = MetaDataType {
v1_21: 7i32, v1_21: 7i32,
@ -264,6 +287,7 @@ impl MetaDataType {
v1_21_9: 7i32, v1_21_9: 7i32,
v1_21_11: 7i32, v1_21_11: 7i32,
v26_1: 7i32, v26_1: 7i32,
v26_2: 7i32,
}; };
pub const LAZY_ENTITY_REFERENCE: MetaDataType = MetaDataType { pub const LAZY_ENTITY_REFERENCE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -275,6 +299,7 @@ impl MetaDataType {
v1_21_9: 13i32, v1_21_9: 13i32,
v1_21_11: 13i32, v1_21_11: 13i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const LONG: MetaDataType = MetaDataType { pub const LONG: MetaDataType = MetaDataType {
v1_21: 2i32, v1_21: 2i32,
@ -286,6 +311,7 @@ impl MetaDataType {
v1_21_9: 2i32, v1_21_9: 2i32,
v1_21_11: 2i32, v1_21_11: 2i32,
v26_1: 2i32, v26_1: 2i32,
v26_2: 2i32,
}; };
pub const NBT_COMPOUND: MetaDataType = MetaDataType { pub const NBT_COMPOUND: MetaDataType = MetaDataType {
v1_21: 16i32, v1_21: 16i32,
@ -297,6 +323,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const OPTIONAL_BLOCK_POS: MetaDataType = MetaDataType { pub const OPTIONAL_BLOCK_POS: MetaDataType = MetaDataType {
v1_21: 11i32, v1_21: 11i32,
@ -308,6 +335,7 @@ impl MetaDataType {
v1_21_9: 11i32, v1_21_9: 11i32,
v1_21_11: 11i32, v1_21_11: 11i32,
v26_1: 11i32, v26_1: 11i32,
v26_2: 11i32,
}; };
pub const OPTIONAL_BLOCK_STATE: MetaDataType = MetaDataType { pub const OPTIONAL_BLOCK_STATE: MetaDataType = MetaDataType {
v1_21: 15i32, v1_21: 15i32,
@ -319,6 +347,7 @@ impl MetaDataType {
v1_21_9: 15i32, v1_21_9: 15i32,
v1_21_11: 15i32, v1_21_11: 15i32,
v26_1: 15i32, v26_1: 15i32,
v26_2: 15i32,
}; };
pub const OPTIONAL_COMPONENT: MetaDataType = MetaDataType { pub const OPTIONAL_COMPONENT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -330,6 +359,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 6i32, v26_1: 6i32,
v26_2: 6i32,
}; };
pub const OPTIONAL_GLOBAL_POS: MetaDataType = MetaDataType { pub const OPTIONAL_GLOBAL_POS: MetaDataType = MetaDataType {
v1_21: 25i32, v1_21: 25i32,
@ -341,6 +371,7 @@ impl MetaDataType {
v1_21_9: 28i32, v1_21_9: 28i32,
v1_21_11: 29i32, v1_21_11: 29i32,
v26_1: 33i32, v26_1: 33i32,
v26_2: 33i32,
}; };
pub const OPTIONAL_INT: MetaDataType = MetaDataType { pub const OPTIONAL_INT: MetaDataType = MetaDataType {
v1_21: 20i32, v1_21: 20i32,
@ -352,6 +383,7 @@ impl MetaDataType {
v1_21_9: 19i32, v1_21_9: 19i32,
v1_21_11: 19i32, v1_21_11: 19i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const OPTIONAL_LIVING_ENTITY_REFERENCE: MetaDataType = MetaDataType { pub const OPTIONAL_LIVING_ENTITY_REFERENCE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -363,6 +395,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 13i32, v26_1: 13i32,
v26_2: 13i32,
}; };
pub const OPTIONAL_TEXT_COMPONENT: MetaDataType = MetaDataType { pub const OPTIONAL_TEXT_COMPONENT: MetaDataType = MetaDataType {
v1_21: 6i32, v1_21: 6i32,
@ -374,6 +407,7 @@ impl MetaDataType {
v1_21_9: 6i32, v1_21_9: 6i32,
v1_21_11: 6i32, v1_21_11: 6i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const OPTIONAL_UNSIGNED_INT: MetaDataType = MetaDataType { pub const OPTIONAL_UNSIGNED_INT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -385,6 +419,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 19i32, v26_1: 19i32,
v26_2: 19i32,
}; };
pub const OPTIONAL_UUID: MetaDataType = MetaDataType { pub const OPTIONAL_UUID: MetaDataType = MetaDataType {
v1_21: 13i32, v1_21: 13i32,
@ -396,6 +431,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const OXIDATION_LEVEL: MetaDataType = MetaDataType { pub const OXIDATION_LEVEL: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -407,6 +443,7 @@ impl MetaDataType {
v1_21_9: 33i32, v1_21_9: 33i32,
v1_21_11: 34i32, v1_21_11: 34i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const PAINTING_VARIANT: MetaDataType = MetaDataType { pub const PAINTING_VARIANT: MetaDataType = MetaDataType {
v1_21: 26i32, v1_21: 26i32,
@ -418,6 +455,7 @@ impl MetaDataType {
v1_21_9: 29i32, v1_21_9: 29i32,
v1_21_11: 30i32, v1_21_11: 30i32,
v26_1: 34i32, v26_1: 34i32,
v26_2: 34i32,
}; };
pub const PARTICLE: MetaDataType = MetaDataType { pub const PARTICLE: MetaDataType = MetaDataType {
v1_21: 17i32, v1_21: 17i32,
@ -429,6 +467,7 @@ impl MetaDataType {
v1_21_9: 16i32, v1_21_9: 16i32,
v1_21_11: 16i32, v1_21_11: 16i32,
v26_1: 16i32, v26_1: 16i32,
v26_2: 16i32,
}; };
pub const PARTICLE_LIST: MetaDataType = MetaDataType { pub const PARTICLE_LIST: MetaDataType = MetaDataType {
v1_21: 18i32, v1_21: 18i32,
@ -440,6 +479,7 @@ impl MetaDataType {
v1_21_9: 17i32, v1_21_9: 17i32,
v1_21_11: 17i32, v1_21_11: 17i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const PARTICLES: MetaDataType = MetaDataType { pub const PARTICLES: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -451,6 +491,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 17i32, v26_1: 17i32,
v26_2: 17i32,
}; };
pub const PIG_SOUND_VARIANT: MetaDataType = MetaDataType { pub const PIG_SOUND_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -462,6 +503,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 29i32, v26_1: 29i32,
v26_2: 29i32,
}; };
pub const PIG_VARIANT: MetaDataType = MetaDataType { pub const PIG_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -473,6 +515,7 @@ impl MetaDataType {
v1_21_9: 26i32, v1_21_9: 26i32,
v1_21_11: 26i32, v1_21_11: 26i32,
v26_1: 28i32, v26_1: 28i32,
v26_2: 28i32,
}; };
pub const POSE: MetaDataType = MetaDataType { pub const POSE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -484,6 +527,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 20i32, v26_1: 20i32,
v26_2: 20i32,
}; };
pub const PROFILE: MetaDataType = MetaDataType { pub const PROFILE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -495,6 +539,7 @@ impl MetaDataType {
v1_21_9: 36i32, v1_21_9: 36i32,
v1_21_11: 37i32, v1_21_11: 37i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const QUATERNION: MetaDataType = MetaDataType { pub const QUATERNION: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -506,6 +551,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 40i32, v26_1: 40i32,
v26_2: 40i32,
}; };
pub const QUATERNION_F: MetaDataType = MetaDataType { pub const QUATERNION_F: MetaDataType = MetaDataType {
v1_21: 30i32, v1_21: 30i32,
@ -517,6 +563,7 @@ impl MetaDataType {
v1_21_9: 35i32, v1_21_9: 35i32,
v1_21_11: 36i32, v1_21_11: 36i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const RESOLVABLE_PROFILE: MetaDataType = MetaDataType { pub const RESOLVABLE_PROFILE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -528,6 +575,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 41i32, v26_1: 41i32,
v26_2: 41i32,
}; };
pub const ROTATION: MetaDataType = MetaDataType { pub const ROTATION: MetaDataType = MetaDataType {
v1_21: 9i32, v1_21: 9i32,
@ -539,6 +587,7 @@ impl MetaDataType {
v1_21_9: 9i32, v1_21_9: 9i32,
v1_21_11: 9i32, v1_21_11: 9i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const ROTATIONS: MetaDataType = MetaDataType { pub const ROTATIONS: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -550,6 +599,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 9i32, v26_1: 9i32,
v26_2: 9i32,
}; };
pub const SNIFFER_STATE: MetaDataType = MetaDataType { pub const SNIFFER_STATE: MetaDataType = MetaDataType {
v1_21: 27i32, v1_21: 27i32,
@ -561,6 +611,7 @@ impl MetaDataType {
v1_21_9: 30i32, v1_21_9: 30i32,
v1_21_11: 31i32, v1_21_11: 31i32,
v26_1: 35i32, v26_1: 35i32,
v26_2: 35i32,
}; };
pub const STRING: MetaDataType = MetaDataType { pub const STRING: MetaDataType = MetaDataType {
v1_21: 4i32, v1_21: 4i32,
@ -572,6 +623,7 @@ impl MetaDataType {
v1_21_9: 4i32, v1_21_9: 4i32,
v1_21_11: 4i32, v1_21_11: 4i32,
v26_1: 4i32, v26_1: 4i32,
v26_2: 4i32,
}; };
pub const TEXT_COMPONENT: MetaDataType = MetaDataType { pub const TEXT_COMPONENT: MetaDataType = MetaDataType {
v1_21: 5i32, v1_21: 5i32,
@ -583,6 +635,7 @@ impl MetaDataType {
v1_21_9: 5i32, v1_21_9: 5i32,
v1_21_11: 5i32, v1_21_11: 5i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const VECTOR3: MetaDataType = MetaDataType { pub const VECTOR3: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -594,6 +647,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 39i32, v26_1: 39i32,
v26_2: 39i32,
}; };
pub const VECTOR_3F: MetaDataType = MetaDataType { pub const VECTOR_3F: MetaDataType = MetaDataType {
v1_21: 29i32, v1_21: 29i32,
@ -605,6 +659,7 @@ impl MetaDataType {
v1_21_9: 34i32, v1_21_9: 34i32,
v1_21_11: 35i32, v1_21_11: 35i32,
v26_1: -1i32, v26_1: -1i32,
v26_2: -1i32,
}; };
pub const VILLAGER_DATA: MetaDataType = MetaDataType { pub const VILLAGER_DATA: MetaDataType = MetaDataType {
v1_21: 19i32, v1_21: 19i32,
@ -616,6 +671,7 @@ impl MetaDataType {
v1_21_9: 18i32, v1_21_9: 18i32,
v1_21_11: 18i32, v1_21_11: 18i32,
v26_1: 18i32, v26_1: 18i32,
v26_2: 18i32,
}; };
pub const WEATHERING_COPPER_STATE: MetaDataType = MetaDataType { pub const WEATHERING_COPPER_STATE: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -627,6 +683,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: -1i32, v1_21_11: -1i32,
v26_1: 38i32, v26_1: 38i32,
v26_2: 38i32,
}; };
pub const WOLF_SOUND_VARIANT: MetaDataType = MetaDataType { pub const WOLF_SOUND_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -638,6 +695,7 @@ impl MetaDataType {
v1_21_9: 24i32, v1_21_9: 24i32,
v1_21_11: 24i32, v1_21_11: 24i32,
v26_1: 26i32, v26_1: 26i32,
v26_2: 26i32,
}; };
pub const WOLF_VARIANT: MetaDataType = MetaDataType { pub const WOLF_VARIANT: MetaDataType = MetaDataType {
v1_21: 23i32, v1_21: 23i32,
@ -649,6 +707,7 @@ impl MetaDataType {
v1_21_9: 23i32, v1_21_9: 23i32,
v1_21_11: 23i32, v1_21_11: 23i32,
v26_1: 25i32, v26_1: 25i32,
v26_2: 25i32,
}; };
pub const ZOMBIE_NAUTILUS_VARIANT: MetaDataType = MetaDataType { pub const ZOMBIE_NAUTILUS_VARIANT: MetaDataType = MetaDataType {
v1_21: -1i32, v1_21: -1i32,
@ -660,6 +719,7 @@ impl MetaDataType {
v1_21_9: -1i32, v1_21_9: -1i32,
v1_21_11: 28i32, v1_21_11: 28i32,
v26_1: 32i32, v26_1: 32i32,
v26_2: 32i32,
}; };
pub const fn id(&self, version: pumpkin_util::version::JavaMinecraftVersion) -> i32 { pub const fn id(&self, version: pumpkin_util::version::JavaMinecraftVersion) -> i32 {
match version { match version {
@ -672,6 +732,7 @@ impl MetaDataType {
pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 => self.v1_21_9, pumpkin_util::version::JavaMinecraftVersion::V_1_21_9 => self.v1_21_9,
pumpkin_util::version::JavaMinecraftVersion::V_1_21_11 => self.v1_21_11, pumpkin_util::version::JavaMinecraftVersion::V_1_21_11 => self.v1_21_11,
pumpkin_util::version::JavaMinecraftVersion::V_26_1 => self.v26_1, pumpkin_util::version::JavaMinecraftVersion::V_26_1 => self.v26_1,
pumpkin_util::version::JavaMinecraftVersion::V_26_2 => self.v26_2,
_ => -1i32, _ => -1i32,
} }
} }

View File

@ -8,7 +8,7 @@ pub struct DoublePerlinNoiseParameters {
pub amplitude: f64, pub amplitude: f64,
} }
impl DoublePerlinNoiseParameters { impl DoublePerlinNoiseParameters {
pub const COUNT: usize = 62usize; pub const COUNT: usize = 63usize;
pub const fn new( pub const fn new(
id: usize, id: usize,
first_octave: i32, first_octave: i32,
@ -87,6 +87,7 @@ impl DoublePerlinNoiseParameters {
"spaghetti_3d_thickness" => &Self::SPAGHETTI_3D_THICKNESS, "spaghetti_3d_thickness" => &Self::SPAGHETTI_3D_THICKNESS,
"spaghetti_roughness" => &Self::SPAGHETTI_ROUGHNESS, "spaghetti_roughness" => &Self::SPAGHETTI_ROUGHNESS,
"spaghetti_roughness_modulator" => &Self::SPAGHETTI_ROUGHNESS_MODULATOR, "spaghetti_roughness_modulator" => &Self::SPAGHETTI_ROUGHNESS_MODULATOR,
"sulfur_cave_gradient" => &Self::SULFUR_CAVE_GRADIENT,
"surface" => &Self::SURFACE, "surface" => &Self::SURFACE,
"surface_secondary" => &Self::SURFACE_SECONDARY, "surface_secondary" => &Self::SURFACE_SECONDARY,
"surface_swamp" => &Self::SURFACE_SWAMP, "surface_swamp" => &Self::SURFACE_SWAMP,
@ -567,8 +568,16 @@ impl DoublePerlinNoiseParameters {
14613561992896323587u64, 14613561992896323587u64,
0.8333333333333333f64, 0.8333333333333333f64,
); );
pub const SURFACE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const SULFUR_CAVE_GRADIENT: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
55usize, 55usize,
-5i32,
&[1f64, 0f64, 1f64],
18337577454901213776u64,
11718438542783181498u64,
1.25f64,
);
pub const SURFACE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
56usize,
-6i32, -6i32,
&[1f64, 1f64, 1f64], &[1f64, 1f64, 1f64],
5417997184927261100u64, 5417997184927261100u64,
@ -576,7 +585,7 @@ impl DoublePerlinNoiseParameters {
1.25f64, 1.25f64,
); );
pub const SURFACE_SECONDARY: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const SURFACE_SECONDARY: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
56usize, 57usize,
-6i32, -6i32,
&[1f64, 1f64, 0f64, 1f64], &[1f64, 1f64, 0f64, 1f64],
2051559389371867033u64, 2051559389371867033u64,
@ -584,7 +593,7 @@ impl DoublePerlinNoiseParameters {
1.3333333333333333f64, 1.3333333333333333f64,
); );
pub const SURFACE_SWAMP: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const SURFACE_SWAMP: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
57usize, 58usize,
-2i32, -2i32,
&[1f64], &[1f64],
14388971182144335831u64, 14388971182144335831u64,
@ -592,7 +601,7 @@ impl DoublePerlinNoiseParameters {
0.8333333333333333f64, 0.8333333333333333f64,
); );
pub const TEMPERATURE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const TEMPERATURE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
58usize, 59usize,
-10i32, -10i32,
&[1.5f64, 0f64, 1f64, 0f64, 0f64, 0f64], &[1.5f64, 0f64, 1f64, 0f64, 0f64, 0f64],
6664882324328353151u64, 6664882324328353151u64,
@ -600,7 +609,7 @@ impl DoublePerlinNoiseParameters {
1.25f64, 1.25f64,
); );
pub const TEMPERATURE_LARGE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const TEMPERATURE_LARGE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
59usize, 60usize,
-12i32, -12i32,
&[1.5f64, 0f64, 1f64, 0f64, 0f64, 0f64], &[1.5f64, 0f64, 1f64, 0f64, 0f64, 0f64],
10685635038780148187u64, 10685635038780148187u64,
@ -608,7 +617,7 @@ impl DoublePerlinNoiseParameters {
1.25f64, 1.25f64,
); );
pub const VEGETATION: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const VEGETATION: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
60usize, 61usize,
-8i32, -8i32,
&[1f64, 1f64, 0f64, 0f64, 0f64, 0f64], &[1f64, 1f64, 0f64, 0f64, 0f64, 0f64],
9348150263868561038u64, 9348150263868561038u64,
@ -616,7 +625,7 @@ impl DoublePerlinNoiseParameters {
1.111111111111111f64, 1.111111111111111f64,
); );
pub const VEGETATION_LARGE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new( pub const VEGETATION_LARGE: DoublePerlinNoiseParameters = DoublePerlinNoiseParameters::new(
61usize, 62usize,
-10i32, -10i32,
&[1f64, 1f64, 0f64, 0f64, 0f64, 0f64], &[1f64, 1f64, 0f64, 0f64, 0f64, 0f64],
8194488175179944705u64, 8194488175179944705u64,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,6 +5,13 @@ pub enum Particle {
Block, Block,
BlockMarker, BlockMarker,
Bubble, Bubble,
SulfurBubbles,
NoxiousGas,
NoxiousGasCloud,
Geyser,
GeyserBase,
GeyserPoof,
GeyserPlume,
Cloud, Cloud,
CopperFireFlame, CopperFireFlame,
Crit, Crit,
@ -118,6 +125,7 @@ pub enum Particle {
TrialOmen, TrialOmen,
BlockCrumble, BlockCrumble,
Firefly, Firefly,
SulfurCubeGoo,
} }
impl Particle { impl Particle {
#[doc = r" Try to parse a `Particle` from a resource location string."] #[doc = r" Try to parse a `Particle` from a resource location string."]
@ -129,6 +137,13 @@ impl Particle {
"block" => Some(Self::Block), "block" => Some(Self::Block),
"block_marker" => Some(Self::BlockMarker), "block_marker" => Some(Self::BlockMarker),
"bubble" => Some(Self::Bubble), "bubble" => Some(Self::Bubble),
"sulfur_bubbles" => Some(Self::SulfurBubbles),
"noxious_gas" => Some(Self::NoxiousGas),
"noxious_gas_cloud" => Some(Self::NoxiousGasCloud),
"geyser" => Some(Self::Geyser),
"geyser_base" => Some(Self::GeyserBase),
"geyser_poof" => Some(Self::GeyserPoof),
"geyser_plume" => Some(Self::GeyserPlume),
"cloud" => Some(Self::Cloud), "cloud" => Some(Self::Cloud),
"copper_fire_flame" => Some(Self::CopperFireFlame), "copper_fire_flame" => Some(Self::CopperFireFlame),
"crit" => Some(Self::Crit), "crit" => Some(Self::Crit),
@ -242,6 +257,7 @@ impl Particle {
"trial_omen" => Some(Self::TrialOmen), "trial_omen" => Some(Self::TrialOmen),
"block_crumble" => Some(Self::BlockCrumble), "block_crumble" => Some(Self::BlockCrumble),
"firefly" => Some(Self::Firefly), "firefly" => Some(Self::Firefly),
"sulfur_cube_goo" => Some(Self::SulfurCubeGoo),
_ => None, _ => None,
} }
} }
@ -253,6 +269,13 @@ impl Particle {
Self::Block => "block", Self::Block => "block",
Self::BlockMarker => "block_marker", Self::BlockMarker => "block_marker",
Self::Bubble => "bubble", Self::Bubble => "bubble",
Self::SulfurBubbles => "sulfur_bubbles",
Self::NoxiousGas => "noxious_gas",
Self::NoxiousGasCloud => "noxious_gas_cloud",
Self::Geyser => "geyser",
Self::GeyserBase => "geyser_base",
Self::GeyserPoof => "geyser_poof",
Self::GeyserPlume => "geyser_plume",
Self::Cloud => "cloud", Self::Cloud => "cloud",
Self::CopperFireFlame => "copper_fire_flame", Self::CopperFireFlame => "copper_fire_flame",
Self::Crit => "crit", Self::Crit => "crit",
@ -366,6 +389,7 @@ impl Particle {
Self::TrialOmen => "trial_omen", Self::TrialOmen => "trial_omen",
Self::BlockCrumble => "block_crumble", Self::BlockCrumble => "block_crumble",
Self::Firefly => "firefly", Self::Firefly => "firefly",
Self::SulfurCubeGoo => "sulfur_cube_goo",
} }
} }
} }

View File

@ -201,6 +201,7 @@ pub enum PlacedFeature {
RedMushroomSwamp, RedMushroomSwamp,
RedMushroomTaiga, RedMushroomTaiga,
RootedAzaleaTree, RootedAzaleaTree,
RootedSulfurSpring,
SculkPatchAncientCity, SculkPatchAncientCity,
SculkPatchDeepDark, SculkPatchDeepDark,
SculkVein, SculkVein,
@ -225,6 +226,9 @@ pub enum PlacedFeature {
Spruce, Spruce,
SpruceChecked, SpruceChecked,
SpruceOnSnow, SpruceOnSnow,
SulfurPool,
SulfurSpike,
SulfurSpikeCluster,
SuperBirchBees, SuperBirchBees,
SuperBirchBees0002, SuperBirchBees0002,
TallMangroveChecked, TallMangroveChecked,
@ -464,6 +468,7 @@ impl PlacedFeature {
"red_mushroom_swamp" => Some(Self::RedMushroomSwamp), "red_mushroom_swamp" => Some(Self::RedMushroomSwamp),
"red_mushroom_taiga" => Some(Self::RedMushroomTaiga), "red_mushroom_taiga" => Some(Self::RedMushroomTaiga),
"rooted_azalea_tree" => Some(Self::RootedAzaleaTree), "rooted_azalea_tree" => Some(Self::RootedAzaleaTree),
"rooted_sulfur_spring" => Some(Self::RootedSulfurSpring),
"sculk_patch_ancient_city" => Some(Self::SculkPatchAncientCity), "sculk_patch_ancient_city" => Some(Self::SculkPatchAncientCity),
"sculk_patch_deep_dark" => Some(Self::SculkPatchDeepDark), "sculk_patch_deep_dark" => Some(Self::SculkPatchDeepDark),
"sculk_vein" => Some(Self::SculkVein), "sculk_vein" => Some(Self::SculkVein),
@ -488,6 +493,9 @@ impl PlacedFeature {
"spruce" => Some(Self::Spruce), "spruce" => Some(Self::Spruce),
"spruce_checked" => Some(Self::SpruceChecked), "spruce_checked" => Some(Self::SpruceChecked),
"spruce_on_snow" => Some(Self::SpruceOnSnow), "spruce_on_snow" => Some(Self::SpruceOnSnow),
"sulfur_pool" => Some(Self::SulfurPool),
"sulfur_spike" => Some(Self::SulfurSpike),
"sulfur_spike_cluster" => Some(Self::SulfurSpikeCluster),
"super_birch_bees" => Some(Self::SuperBirchBees), "super_birch_bees" => Some(Self::SuperBirchBees),
"super_birch_bees_0002" => Some(Self::SuperBirchBees0002), "super_birch_bees_0002" => Some(Self::SuperBirchBees0002),
"tall_mangrove_checked" => Some(Self::TallMangroveChecked), "tall_mangrove_checked" => Some(Self::TallMangroveChecked),
@ -727,6 +735,7 @@ impl PlacedFeature {
Self::RedMushroomSwamp => "red_mushroom_swamp", Self::RedMushroomSwamp => "red_mushroom_swamp",
Self::RedMushroomTaiga => "red_mushroom_taiga", Self::RedMushroomTaiga => "red_mushroom_taiga",
Self::RootedAzaleaTree => "rooted_azalea_tree", Self::RootedAzaleaTree => "rooted_azalea_tree",
Self::RootedSulfurSpring => "rooted_sulfur_spring",
Self::SculkPatchAncientCity => "sculk_patch_ancient_city", Self::SculkPatchAncientCity => "sculk_patch_ancient_city",
Self::SculkPatchDeepDark => "sculk_patch_deep_dark", Self::SculkPatchDeepDark => "sculk_patch_deep_dark",
Self::SculkVein => "sculk_vein", Self::SculkVein => "sculk_vein",
@ -751,6 +760,9 @@ impl PlacedFeature {
Self::Spruce => "spruce", Self::Spruce => "spruce",
Self::SpruceChecked => "spruce_checked", Self::SpruceChecked => "spruce_checked",
Self::SpruceOnSnow => "spruce_on_snow", Self::SpruceOnSnow => "spruce_on_snow",
Self::SulfurPool => "sulfur_pool",
Self::SulfurSpike => "sulfur_spike",
Self::SulfurSpikeCluster => "sulfur_spike_cluster",
Self::SuperBirchBees => "super_birch_bees", Self::SuperBirchBees => "super_birch_bees",
Self::SuperBirchBees0002 => "super_birch_bees_0002", Self::SuperBirchBees0002 => "super_birch_bees_0002",
Self::TallMangroveChecked => "tall_mangrove_checked", Self::TallMangroveChecked => "tall_mangrove_checked",

View File

@ -1319,6 +1319,31 @@ fn build_placed_features()
heightmap: HeightMap::MotionBlocking, heightmap: HeightMap::MotionBlocking,
}), }),
PlacementModifier::Biome(BiomePlacementModifier), PlacementModifier::Biome(BiomePlacementModifier),
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Constant(64i32),
}),
PlacementModifier::RandomOffset(RandomOffsetPlacementModifier {
xz_spread: IntProvider::Object(NormalIntProvider::Trapezoid(
TrapezoidIntProvider {
min_inclusive: -7i32,
max_inclusive: 7i32,
plateau: 0i32,
},
)),
y_spread: IntProvider::Object(NormalIntProvider::Trapezoid(
TrapezoidIntProvider {
min_inclusive: -3i32,
max_inclusive: 3i32,
plateau: 0i32,
},
)),
}),
PlacementModifier::BlockPredicateFilter(BlockFilterPlacementModifier {
predicate: BlockPredicate::MatchingBlockTag(MatchingBlockTagPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
tag: pumpkin_data::tag::Block::MINECRAFT_AIR,
}),
}),
], ],
}, },
); );
@ -1585,6 +1610,31 @@ fn build_placed_features()
heightmap: HeightMap::MotionBlocking, heightmap: HeightMap::MotionBlocking,
}), }),
PlacementModifier::Biome(BiomePlacementModifier), PlacementModifier::Biome(BiomePlacementModifier),
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Constant(64i32),
}),
PlacementModifier::RandomOffset(RandomOffsetPlacementModifier {
xz_spread: IntProvider::Object(NormalIntProvider::Trapezoid(
TrapezoidIntProvider {
min_inclusive: -7i32,
max_inclusive: 7i32,
plateau: 0i32,
},
)),
y_spread: IntProvider::Object(NormalIntProvider::Trapezoid(
TrapezoidIntProvider {
min_inclusive: -3i32,
max_inclusive: 3i32,
plateau: 0i32,
},
)),
}),
PlacementModifier::BlockPredicateFilter(BlockFilterPlacementModifier {
predicate: BlockPredicate::MatchingBlockTag(MatchingBlockTagPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
tag: pumpkin_data::tag::Block::MINECRAFT_AIR,
}),
}),
], ],
}, },
); );
@ -5928,6 +5978,47 @@ fn build_placed_features()
], ],
}, },
); );
map.insert(
pumpkin_data::placed_feature::PlacedFeature::RootedSulfurSpring,
PlacedFeature {
feature: Feature::Named(
pumpkin_data::configured_feature::ConfiguredFeature::RootedSulfurSpring,
),
placement: vec![
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Object(NormalIntProvider::Uniform(UniformIntProvider {
min_inclusive: 1i32,
max_inclusive: 2i32,
})),
}),
PlacementModifier::InSquare(SquarePlacementModifier),
PlacementModifier::HeightRange(HeightRangePlacementModifier {
height: HeightProvider::Uniform(UniformHeightProvider {
min_inclusive: YOffset::AboveBottom(AboveBottom { above_bottom: 0i8 }),
max_inclusive: YOffset::Absolute(Absolute { absolute: 256i16 }),
}),
}),
PlacementModifier::EnvironmentScan(EnvironmentScanPlacementModifier {
direction_of_search: BlockDirection::Up,
target_condition: BlockPredicate::Solid(SolidBlockPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
}),
allowed_search_condition: Some(BlockPredicate::MatchingBlockTag(
MatchingBlockTagPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
tag: pumpkin_data::tag::Block::MINECRAFT_AIR,
},
)),
max_steps: 12i32,
}),
PlacementModifier::RandomOffset(RandomOffsetPlacementModifier {
xz_spread: IntProvider::Constant(0i32),
y_spread: IntProvider::Constant(-1i32),
}),
PlacementModifier::Biome(BiomePlacementModifier),
],
},
);
map.insert( map.insert(
pumpkin_data::placed_feature::PlacedFeature::SculkPatchAncientCity, pumpkin_data::placed_feature::PlacedFeature::SculkPatchAncientCity,
PlacedFeature { PlacedFeature {
@ -6415,6 +6506,123 @@ fn build_placed_features()
], ],
}, },
); );
map.insert(
pumpkin_data::placed_feature::PlacedFeature::SulfurPool,
PlacedFeature {
feature: Feature::Named(
pumpkin_data::configured_feature::ConfiguredFeature::SulfurPool,
),
placement: vec![
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Constant(256i32),
}),
PlacementModifier::InSquare(SquarePlacementModifier),
PlacementModifier::HeightRange(HeightRangePlacementModifier {
height: HeightProvider::Uniform(UniformHeightProvider {
min_inclusive: YOffset::AboveBottom(AboveBottom { above_bottom: 0i8 }),
max_inclusive: YOffset::Absolute(Absolute { absolute: 256i16 }),
}),
}),
PlacementModifier::BlockPredicateFilter(BlockFilterPlacementModifier {
predicate: BlockPredicate::Solid(SolidBlockPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
}),
}),
PlacementModifier::EnvironmentScan(EnvironmentScanPlacementModifier {
direction_of_search: BlockDirection::Up,
target_condition: BlockPredicate::MatchingBlockTag(MatchingBlockTagPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
tag: pumpkin_data::tag::Block::MINECRAFT_AIR,
}),
allowed_search_condition: None,
max_steps: 32i32,
}),
PlacementModifier::RandomOffset(RandomOffsetPlacementModifier {
xz_spread: IntProvider::Constant(0i32),
y_spread: IntProvider::Constant(-1i32),
}),
PlacementModifier::BlockPredicateFilter(BlockFilterPlacementModifier {
predicate: BlockPredicate::MatchingBlocks(MatchingBlocksBlockPredicate {
offset: OffsetBlocksBlockPredicate { offset: None },
blocks: MatchingBlocksWrapper::Single("minecraft:sulfur".to_string()),
}),
}),
PlacementModifier::Biome(BiomePlacementModifier),
],
},
);
map.insert(
pumpkin_data::placed_feature::PlacedFeature::SulfurSpike,
PlacedFeature {
feature: Feature::Named(
pumpkin_data::configured_feature::ConfiguredFeature::SulfurSpike,
),
placement: vec![
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Object(NormalIntProvider::Uniform(UniformIntProvider {
min_inclusive: 192i32,
max_inclusive: 256i32,
})),
}),
PlacementModifier::InSquare(SquarePlacementModifier),
PlacementModifier::HeightRange(HeightRangePlacementModifier {
height: HeightProvider::Uniform(UniformHeightProvider {
min_inclusive: YOffset::AboveBottom(AboveBottom { above_bottom: 0i8 }),
max_inclusive: YOffset::Absolute(Absolute { absolute: 256i16 }),
}),
}),
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Object(NormalIntProvider::Uniform(UniformIntProvider {
min_inclusive: 1i32,
max_inclusive: 5i32,
})),
}),
PlacementModifier::RandomOffset(RandomOffsetPlacementModifier {
xz_spread: IntProvider::Object(NormalIntProvider::ClampedNormal(
ClampedNormalIntProvider {
mean: 0f32,
deviation: 3f32,
min_inclusive: -10i32,
max_inclusive: 10i32,
},
)),
y_spread: IntProvider::Object(NormalIntProvider::ClampedNormal(
ClampedNormalIntProvider {
mean: 0f32,
deviation: 0.6f32,
min_inclusive: -2i32,
max_inclusive: 2i32,
},
)),
}),
PlacementModifier::Biome(BiomePlacementModifier),
],
},
);
map.insert(
pumpkin_data::placed_feature::PlacedFeature::SulfurSpikeCluster,
PlacedFeature {
feature: Feature::Named(
pumpkin_data::configured_feature::ConfiguredFeature::SulfurSpikeCluster,
),
placement: vec![
PlacementModifier::Count(CountPlacementModifier {
count: IntProvider::Object(NormalIntProvider::Uniform(UniformIntProvider {
min_inclusive: 48i32,
max_inclusive: 96i32,
})),
}),
PlacementModifier::InSquare(SquarePlacementModifier),
PlacementModifier::HeightRange(HeightRangePlacementModifier {
height: HeightProvider::Uniform(UniformHeightProvider {
min_inclusive: YOffset::AboveBottom(AboveBottom { above_bottom: 0i8 }),
max_inclusive: YOffset::Absolute(Absolute { absolute: 256i16 }),
}),
}),
PlacementModifier::Biome(BiomePlacementModifier),
],
},
);
map.insert( map.insert(
pumpkin_data::placed_feature::PlacedFeature::SuperBirchBees, pumpkin_data::placed_feature::PlacedFeature::SuperBirchBees,
PlacedFeature { PlacedFeature {

View File

@ -3,13 +3,13 @@
#[allow(clippy::match_same_arms)] #[allow(clippy::match_same_arms)]
pub const fn get_recipe_remainder_id(item_id: u16) -> Option<u16> { pub const fn get_recipe_remainder_id(item_id: u16) -> Option<u16> {
match item_id { match item_id {
948 => Some(893), 975 => Some(920),
1019 => Some(1013), 1046 => Some(1040),
1122 => Some(1121), 1150 => Some(1149),
1252 => Some(893), 1281 => Some(920),
1290 => Some(893), 1319 => Some(920),
1341 => Some(893), 1371 => Some(920),
1382 => Some(1121), 1412 => Some(1149),
_ => None, _ => None,
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -230,12 +230,14 @@ pub enum Sound {
ItemBucketEmptyFish, ItemBucketEmptyFish,
ItemBucketEmptyLava, ItemBucketEmptyLava,
ItemBucketEmptyPowderSnow, ItemBucketEmptyPowderSnow,
ItemBucketEmptySulfurCube,
ItemBucketEmptyTadpole, ItemBucketEmptyTadpole,
ItemBucketFill, ItemBucketFill,
ItemBucketFillAxolotl, ItemBucketFillAxolotl,
ItemBucketFillFish, ItemBucketFillFish,
ItemBucketFillLava, ItemBucketFillLava,
ItemBucketFillPowderSnow, ItemBucketFillPowderSnow,
ItemBucketFillSulfurCube,
ItemBucketFillTadpole, ItemBucketFillTadpole,
ItemBundleDropContents, ItemBundleDropContents,
ItemBundleInsert, ItemBundleInsert,
@ -1033,6 +1035,7 @@ pub enum Sound {
MusicDisc11, MusicDisc11,
MusicDisc13, MusicDisc13,
MusicDiscBlocks, MusicDiscBlocks,
MusicDiscBounce,
MusicDiscCat, MusicDiscCat,
MusicDiscChirp, MusicDiscChirp,
MusicDiscFar, MusicDiscFar,
@ -1078,6 +1081,7 @@ pub enum Sound {
MusicOverworldJungle, MusicOverworldJungle,
MusicOverworldSparseJungle, MusicOverworldSparseJungle,
MusicOverworldBambooJungle, MusicOverworldBambooJungle,
MusicOverworldSulfurCaves,
MusicUnderWater, MusicUnderWater,
EntityNautilusAmbient, EntityNautilusAmbient,
EntityNautilusAmbientLand, EntityNautilusAmbientLand,
@ -1607,6 +1611,12 @@ pub enum Sound {
EntityStrayDeath, EntityStrayDeath,
EntityStrayHurt, EntityStrayHurt,
EntityStrayStep, EntityStrayStep,
BlockSulfurSpikeBreak,
BlockSulfurSpikeStep,
BlockSulfurSpikePlace,
BlockSulfurSpikeHit,
BlockSulfurSpikeFall,
BlockSulfurSpikeLand,
BlockSweetBerryBushBreak, BlockSweetBerryBushBreak,
BlockSweetBerryBushPlace, BlockSweetBerryBushPlace,
BlockSweetBerryBushPickBerries, BlockSweetBerryBushPickBerries,
@ -1904,6 +1914,62 @@ pub enum Sound {
ItemSaddleUnequip, ItemSaddleUnequip,
ItemNautilusSaddleUnderwaterEquip, ItemNautilusSaddleUnderwaterEquip,
ItemNautilusSaddleEquip, ItemNautilusSaddleEquip,
BlockSulfurBreak,
BlockSulfurStep,
BlockSulfurPlace,
BlockSulfurHit,
BlockSulfurFall,
BlockPotentSulfurBreak,
BlockPotentSulfurStep,
BlockPotentSulfurPlace,
BlockPotentSulfurHit,
BlockPotentSulfurFall,
BlockPotentSulfurGeyserEruption,
BlockPotentSulfurGeyserEruptionActive,
BlockPotentSulfurGeyserContinuousEruption,
BlockPotentSulfurGeyserContinuousEruptionActive,
BlockCinnabarBreak,
BlockCinnabarStep,
BlockCinnabarPlace,
BlockCinnabarHit,
BlockCinnabarFall,
EntitySulfurCubeAbsorb,
EntitySulfurCubeBounce,
EntitySulfurCubeDeath,
EntitySulfurCubeEject,
EntitySulfurCubeHurt,
EntitySulfurCubeJump,
EntitySulfurCubeRegularHit,
EntitySulfurCubeRegularPush,
EntitySulfurCubeBouncyHit,
EntitySulfurCubeBouncyPush,
EntitySulfurCubeSlowBouncyHit,
EntitySulfurCubeSlowBouncyPush,
EntitySulfurCubeSlowFlatHit,
EntitySulfurCubeSlowFlatPush,
EntitySulfurCubeFastFlatHit,
EntitySulfurCubeFastFlatPush,
EntitySulfurCubeLightHit,
EntitySulfurCubeLightPush,
EntitySulfurCubeFastSlidingHit,
EntitySulfurCubeFastSlidingPush,
EntitySulfurCubeSlowSlidingHit,
EntitySulfurCubeSlowSlidingPush,
EntitySulfurCubeStickyHit,
EntitySulfurCubeStickyPush,
EntitySulfurCubeHighResistanceHit,
EntitySulfurCubeHighResistancePush,
EntitySulfurCubeExplosiveHit,
EntitySulfurCubeExplosivePush,
EntitySulfurCubeHotHit,
EntitySulfurCubeHotPush,
EntitySulfurCubeSquish,
BlockPotentSulfurNoxiousGas,
EntitySmallSulfurCubeDeath,
EntitySmallSulfurCubeHurt,
EntitySmallSulfurCubeJump,
EntitySmallSulfurCubeSquish,
EntitySmallSulfurCubeEat,
} }
impl Sound { impl Sound {
pub const NAMES: &[&str] = &[ pub const NAMES: &[&str] = &[
@ -2135,12 +2201,14 @@ impl Sound {
"item.bucket.empty_fish", "item.bucket.empty_fish",
"item.bucket.empty_lava", "item.bucket.empty_lava",
"item.bucket.empty_powder_snow", "item.bucket.empty_powder_snow",
"item.bucket.empty_sulfur_cube",
"item.bucket.empty_tadpole", "item.bucket.empty_tadpole",
"item.bucket.fill", "item.bucket.fill",
"item.bucket.fill_axolotl", "item.bucket.fill_axolotl",
"item.bucket.fill_fish", "item.bucket.fill_fish",
"item.bucket.fill_lava", "item.bucket.fill_lava",
"item.bucket.fill_powder_snow", "item.bucket.fill_powder_snow",
"item.bucket.fill_sulfur_cube",
"item.bucket.fill_tadpole", "item.bucket.fill_tadpole",
"item.bundle.drop_contents", "item.bundle.drop_contents",
"item.bundle.insert", "item.bundle.insert",
@ -2938,6 +3006,7 @@ impl Sound {
"music_disc.11", "music_disc.11",
"music_disc.13", "music_disc.13",
"music_disc.blocks", "music_disc.blocks",
"music_disc.bounce",
"music_disc.cat", "music_disc.cat",
"music_disc.chirp", "music_disc.chirp",
"music_disc.far", "music_disc.far",
@ -2983,6 +3052,7 @@ impl Sound {
"music.overworld.jungle", "music.overworld.jungle",
"music.overworld.sparse_jungle", "music.overworld.sparse_jungle",
"music.overworld.bamboo_jungle", "music.overworld.bamboo_jungle",
"music.overworld.sulfur_caves",
"music.under_water", "music.under_water",
"entity.nautilus.ambient", "entity.nautilus.ambient",
"entity.nautilus.ambient_land", "entity.nautilus.ambient_land",
@ -3512,6 +3582,12 @@ impl Sound {
"entity.stray.death", "entity.stray.death",
"entity.stray.hurt", "entity.stray.hurt",
"entity.stray.step", "entity.stray.step",
"block.sulfur_spike.break",
"block.sulfur_spike.step",
"block.sulfur_spike.place",
"block.sulfur_spike.hit",
"block.sulfur_spike.fall",
"block.sulfur_spike.land",
"block.sweet_berry_bush.break", "block.sweet_berry_bush.break",
"block.sweet_berry_bush.place", "block.sweet_berry_bush.place",
"block.sweet_berry_bush.pick_berries", "block.sweet_berry_bush.pick_berries",
@ -3809,6 +3885,62 @@ impl Sound {
"item.saddle.unequip", "item.saddle.unequip",
"item.nautilus_saddle_underwater_equip", "item.nautilus_saddle_underwater_equip",
"item.nautilus_saddle_equip", "item.nautilus_saddle_equip",
"block.sulfur.break",
"block.sulfur.step",
"block.sulfur.place",
"block.sulfur.hit",
"block.sulfur.fall",
"block.potent_sulfur.break",
"block.potent_sulfur.step",
"block.potent_sulfur.place",
"block.potent_sulfur.hit",
"block.potent_sulfur.fall",
"block.potent_sulfur.geyser_eruption",
"block.potent_sulfur.geyser_eruption_active",
"block.potent_sulfur.geyser_continuous_eruption",
"block.potent_sulfur.geyser_continuous_eruption_active",
"block.cinnabar.break",
"block.cinnabar.step",
"block.cinnabar.place",
"block.cinnabar.hit",
"block.cinnabar.fall",
"entity.sulfur_cube.absorb",
"entity.sulfur_cube.bounce",
"entity.sulfur_cube.death",
"entity.sulfur_cube.eject",
"entity.sulfur_cube.hurt",
"entity.sulfur_cube.jump",
"entity.sulfur_cube.regular.hit",
"entity.sulfur_cube.regular.push",
"entity.sulfur_cube.bouncy.hit",
"entity.sulfur_cube.bouncy.push",
"entity.sulfur_cube.slow_bouncy.hit",
"entity.sulfur_cube.slow_bouncy.push",
"entity.sulfur_cube.slow_flat.hit",
"entity.sulfur_cube.slow_flat.push",
"entity.sulfur_cube.fast_flat.hit",
"entity.sulfur_cube.fast_flat.push",
"entity.sulfur_cube.light.hit",
"entity.sulfur_cube.light.push",
"entity.sulfur_cube.fast_sliding.hit",
"entity.sulfur_cube.fast_sliding.push",
"entity.sulfur_cube.slow_sliding.hit",
"entity.sulfur_cube.slow_sliding.push",
"entity.sulfur_cube.sticky.hit",
"entity.sulfur_cube.sticky.push",
"entity.sulfur_cube.high_resistance.hit",
"entity.sulfur_cube.high_resistance.push",
"entity.sulfur_cube.explosive.hit",
"entity.sulfur_cube.explosive.push",
"entity.sulfur_cube.hot.hit",
"entity.sulfur_cube.hot.push",
"entity.sulfur_cube.squish",
"block.potent_sulfur.noxious_gas",
"entity.small_sulfur_cube.death",
"entity.small_sulfur_cube.hurt",
"entity.small_sulfur_cube.jump",
"entity.small_sulfur_cube.squish",
"entity.small_sulfur_cube.eat",
]; ];
#[allow(clippy::large_stack_arrays)] #[allow(clippy::large_stack_arrays)]
const LOOKUP: &[(&str, Self)] = &[ const LOOKUP: &[(&str, Self)] = &[
@ -4191,6 +4323,11 @@ impl Sound {
), ),
("block.chorus_flower.death", Self::BlockChorusFlowerDeath), ("block.chorus_flower.death", Self::BlockChorusFlowerDeath),
("block.chorus_flower.grow", Self::BlockChorusFlowerGrow), ("block.chorus_flower.grow", Self::BlockChorusFlowerGrow),
("block.cinnabar.break", Self::BlockCinnabarBreak),
("block.cinnabar.fall", Self::BlockCinnabarFall),
("block.cinnabar.hit", Self::BlockCinnabarHit),
("block.cinnabar.place", Self::BlockCinnabarPlace),
("block.cinnabar.step", Self::BlockCinnabarStep),
("block.cobweb.break", Self::BlockCobwebBreak), ("block.cobweb.break", Self::BlockCobwebBreak),
("block.cobweb.fall", Self::BlockCobwebFall), ("block.cobweb.fall", Self::BlockCobwebFall),
("block.cobweb.hit", Self::BlockCobwebHit), ("block.cobweb.hit", Self::BlockCobwebHit),
@ -4846,6 +4983,31 @@ impl Sound {
("block.portal.ambient", Self::BlockPortalAmbient), ("block.portal.ambient", Self::BlockPortalAmbient),
("block.portal.travel", Self::BlockPortalTravel), ("block.portal.travel", Self::BlockPortalTravel),
("block.portal.trigger", Self::BlockPortalTrigger), ("block.portal.trigger", Self::BlockPortalTrigger),
("block.potent_sulfur.break", Self::BlockPotentSulfurBreak),
("block.potent_sulfur.fall", Self::BlockPotentSulfurFall),
(
"block.potent_sulfur.geyser_continuous_eruption",
Self::BlockPotentSulfurGeyserContinuousEruption,
),
(
"block.potent_sulfur.geyser_continuous_eruption_active",
Self::BlockPotentSulfurGeyserContinuousEruptionActive,
),
(
"block.potent_sulfur.geyser_eruption",
Self::BlockPotentSulfurGeyserEruption,
),
(
"block.potent_sulfur.geyser_eruption_active",
Self::BlockPotentSulfurGeyserEruptionActive,
),
("block.potent_sulfur.hit", Self::BlockPotentSulfurHit),
(
"block.potent_sulfur.noxious_gas",
Self::BlockPotentSulfurNoxiousGas,
),
("block.potent_sulfur.place", Self::BlockPotentSulfurPlace),
("block.potent_sulfur.step", Self::BlockPotentSulfurStep),
("block.powder_snow.break", Self::BlockPowderSnowBreak), ("block.powder_snow.break", Self::BlockPowderSnowBreak),
("block.powder_snow.fall", Self::BlockPowderSnowFall), ("block.powder_snow.fall", Self::BlockPowderSnowFall),
("block.powder_snow.hit", Self::BlockPowderSnowHit), ("block.powder_snow.hit", Self::BlockPowderSnowHit),
@ -5041,6 +5203,17 @@ impl Sound {
"block.stone_pressure_plate.click_on", "block.stone_pressure_plate.click_on",
Self::BlockStonePressurePlateClickOn, Self::BlockStonePressurePlateClickOn,
), ),
("block.sulfur.break", Self::BlockSulfurBreak),
("block.sulfur.fall", Self::BlockSulfurFall),
("block.sulfur.hit", Self::BlockSulfurHit),
("block.sulfur.place", Self::BlockSulfurPlace),
("block.sulfur.step", Self::BlockSulfurStep),
("block.sulfur_spike.break", Self::BlockSulfurSpikeBreak),
("block.sulfur_spike.fall", Self::BlockSulfurSpikeFall),
("block.sulfur_spike.hit", Self::BlockSulfurSpikeHit),
("block.sulfur_spike.land", Self::BlockSulfurSpikeLand),
("block.sulfur_spike.place", Self::BlockSulfurSpikePlace),
("block.sulfur_spike.step", Self::BlockSulfurSpikeStep),
( (
"block.suspicious_gravel.break", "block.suspicious_gravel.break",
Self::BlockSuspiciousGravelBreak, Self::BlockSuspiciousGravelBreak,
@ -6326,6 +6499,26 @@ impl Sound {
("entity.slime.jump_small", Self::EntitySlimeJumpSmall), ("entity.slime.jump_small", Self::EntitySlimeJumpSmall),
("entity.slime.squish", Self::EntitySlimeSquish), ("entity.slime.squish", Self::EntitySlimeSquish),
("entity.slime.squish_small", Self::EntitySlimeSquishSmall), ("entity.slime.squish_small", Self::EntitySlimeSquishSmall),
(
"entity.small_sulfur_cube.death",
Self::EntitySmallSulfurCubeDeath,
),
(
"entity.small_sulfur_cube.eat",
Self::EntitySmallSulfurCubeEat,
),
(
"entity.small_sulfur_cube.hurt",
Self::EntitySmallSulfurCubeHurt,
),
(
"entity.small_sulfur_cube.jump",
Self::EntitySmallSulfurCubeJump,
),
(
"entity.small_sulfur_cube.squish",
Self::EntitySmallSulfurCubeSquish,
),
("entity.sniffer.death", Self::EntitySnifferDeath), ("entity.sniffer.death", Self::EntitySnifferDeath),
("entity.sniffer.digging", Self::EntitySnifferDigging), ("entity.sniffer.digging", Self::EntitySnifferDigging),
( (
@ -6370,6 +6563,103 @@ impl Sound {
("entity.strider.saddle", Self::EntityStriderSaddle), ("entity.strider.saddle", Self::EntityStriderSaddle),
("entity.strider.step", Self::EntityStriderStep), ("entity.strider.step", Self::EntityStriderStep),
("entity.strider.step_lava", Self::EntityStriderStepLava), ("entity.strider.step_lava", Self::EntityStriderStepLava),
("entity.sulfur_cube.absorb", Self::EntitySulfurCubeAbsorb),
("entity.sulfur_cube.bounce", Self::EntitySulfurCubeBounce),
(
"entity.sulfur_cube.bouncy.hit",
Self::EntitySulfurCubeBouncyHit,
),
(
"entity.sulfur_cube.bouncy.push",
Self::EntitySulfurCubeBouncyPush,
),
("entity.sulfur_cube.death", Self::EntitySulfurCubeDeath),
("entity.sulfur_cube.eject", Self::EntitySulfurCubeEject),
(
"entity.sulfur_cube.explosive.hit",
Self::EntitySulfurCubeExplosiveHit,
),
(
"entity.sulfur_cube.explosive.push",
Self::EntitySulfurCubeExplosivePush,
),
(
"entity.sulfur_cube.fast_flat.hit",
Self::EntitySulfurCubeFastFlatHit,
),
(
"entity.sulfur_cube.fast_flat.push",
Self::EntitySulfurCubeFastFlatPush,
),
(
"entity.sulfur_cube.fast_sliding.hit",
Self::EntitySulfurCubeFastSlidingHit,
),
(
"entity.sulfur_cube.fast_sliding.push",
Self::EntitySulfurCubeFastSlidingPush,
),
(
"entity.sulfur_cube.high_resistance.hit",
Self::EntitySulfurCubeHighResistanceHit,
),
(
"entity.sulfur_cube.high_resistance.push",
Self::EntitySulfurCubeHighResistancePush,
),
("entity.sulfur_cube.hot.hit", Self::EntitySulfurCubeHotHit),
("entity.sulfur_cube.hot.push", Self::EntitySulfurCubeHotPush),
("entity.sulfur_cube.hurt", Self::EntitySulfurCubeHurt),
("entity.sulfur_cube.jump", Self::EntitySulfurCubeJump),
(
"entity.sulfur_cube.light.hit",
Self::EntitySulfurCubeLightHit,
),
(
"entity.sulfur_cube.light.push",
Self::EntitySulfurCubeLightPush,
),
(
"entity.sulfur_cube.regular.hit",
Self::EntitySulfurCubeRegularHit,
),
(
"entity.sulfur_cube.regular.push",
Self::EntitySulfurCubeRegularPush,
),
(
"entity.sulfur_cube.slow_bouncy.hit",
Self::EntitySulfurCubeSlowBouncyHit,
),
(
"entity.sulfur_cube.slow_bouncy.push",
Self::EntitySulfurCubeSlowBouncyPush,
),
(
"entity.sulfur_cube.slow_flat.hit",
Self::EntitySulfurCubeSlowFlatHit,
),
(
"entity.sulfur_cube.slow_flat.push",
Self::EntitySulfurCubeSlowFlatPush,
),
(
"entity.sulfur_cube.slow_sliding.hit",
Self::EntitySulfurCubeSlowSlidingHit,
),
(
"entity.sulfur_cube.slow_sliding.push",
Self::EntitySulfurCubeSlowSlidingPush,
),
("entity.sulfur_cube.squish", Self::EntitySulfurCubeSquish),
(
"entity.sulfur_cube.sticky.hit",
Self::EntitySulfurCubeStickyHit,
),
(
"entity.sulfur_cube.sticky.push",
Self::EntitySulfurCubeStickyPush,
),
("entity.tadpole.death", Self::EntityTadpoleDeath), ("entity.tadpole.death", Self::EntityTadpoleDeath),
("entity.tadpole.flop", Self::EntityTadpoleFlop), ("entity.tadpole.flop", Self::EntityTadpoleFlop),
("entity.tadpole.grow_up", Self::EntityTadpoleGrowUp), ("entity.tadpole.grow_up", Self::EntityTadpoleGrowUp),
@ -6787,6 +7077,10 @@ impl Sound {
"item.bucket.empty_powder_snow", "item.bucket.empty_powder_snow",
Self::ItemBucketEmptyPowderSnow, Self::ItemBucketEmptyPowderSnow,
), ),
(
"item.bucket.empty_sulfur_cube",
Self::ItemBucketEmptySulfurCube,
),
("item.bucket.empty_tadpole", Self::ItemBucketEmptyTadpole), ("item.bucket.empty_tadpole", Self::ItemBucketEmptyTadpole),
("item.bucket.fill", Self::ItemBucketFill), ("item.bucket.fill", Self::ItemBucketFill),
("item.bucket.fill_axolotl", Self::ItemBucketFillAxolotl), ("item.bucket.fill_axolotl", Self::ItemBucketFillAxolotl),
@ -6796,6 +7090,10 @@ impl Sound {
"item.bucket.fill_powder_snow", "item.bucket.fill_powder_snow",
Self::ItemBucketFillPowderSnow, Self::ItemBucketFillPowderSnow,
), ),
(
"item.bucket.fill_sulfur_cube",
Self::ItemBucketFillSulfurCube,
),
("item.bucket.fill_tadpole", Self::ItemBucketFillTadpole), ("item.bucket.fill_tadpole", Self::ItemBucketFillTadpole),
("item.bundle.drop_contents", Self::ItemBundleDropContents), ("item.bundle.drop_contents", Self::ItemBundleDropContents),
("item.bundle.insert", Self::ItemBundleInsert), ("item.bundle.insert", Self::ItemBundleInsert),
@ -6967,12 +7265,17 @@ impl Sound {
"music.overworld.stony_peaks", "music.overworld.stony_peaks",
Self::MusicOverworldStonyPeaks, Self::MusicOverworldStonyPeaks,
), ),
(
"music.overworld.sulfur_caves",
Self::MusicOverworldSulfurCaves,
),
("music.overworld.swamp", Self::MusicOverworldSwamp), ("music.overworld.swamp", Self::MusicOverworldSwamp),
("music.under_water", Self::MusicUnderWater), ("music.under_water", Self::MusicUnderWater),
("music_disc.11", Self::MusicDisc11), ("music_disc.11", Self::MusicDisc11),
("music_disc.13", Self::MusicDisc13), ("music_disc.13", Self::MusicDisc13),
("music_disc.5", Self::MusicDisc5), ("music_disc.5", Self::MusicDisc5),
("music_disc.blocks", Self::MusicDiscBlocks), ("music_disc.blocks", Self::MusicDiscBlocks),
("music_disc.bounce", Self::MusicDiscBounce),
("music_disc.cat", Self::MusicDiscCat), ("music_disc.cat", Self::MusicDiscCat),
("music_disc.chirp", Self::MusicDiscChirp), ("music_disc.chirp", Self::MusicDiscChirp),
("music_disc.creator", Self::MusicDiscCreator), ("music_disc.creator", Self::MusicDiscCreator),
@ -7260,12 +7563,14 @@ impl Sound {
Self::ItemBucketEmptyFish, Self::ItemBucketEmptyFish,
Self::ItemBucketEmptyLava, Self::ItemBucketEmptyLava,
Self::ItemBucketEmptyPowderSnow, Self::ItemBucketEmptyPowderSnow,
Self::ItemBucketEmptySulfurCube,
Self::ItemBucketEmptyTadpole, Self::ItemBucketEmptyTadpole,
Self::ItemBucketFill, Self::ItemBucketFill,
Self::ItemBucketFillAxolotl, Self::ItemBucketFillAxolotl,
Self::ItemBucketFillFish, Self::ItemBucketFillFish,
Self::ItemBucketFillLava, Self::ItemBucketFillLava,
Self::ItemBucketFillPowderSnow, Self::ItemBucketFillPowderSnow,
Self::ItemBucketFillSulfurCube,
Self::ItemBucketFillTadpole, Self::ItemBucketFillTadpole,
Self::ItemBundleDropContents, Self::ItemBundleDropContents,
Self::ItemBundleInsert, Self::ItemBundleInsert,
@ -8063,6 +8368,7 @@ impl Sound {
Self::MusicDisc11, Self::MusicDisc11,
Self::MusicDisc13, Self::MusicDisc13,
Self::MusicDiscBlocks, Self::MusicDiscBlocks,
Self::MusicDiscBounce,
Self::MusicDiscCat, Self::MusicDiscCat,
Self::MusicDiscChirp, Self::MusicDiscChirp,
Self::MusicDiscFar, Self::MusicDiscFar,
@ -8108,6 +8414,7 @@ impl Sound {
Self::MusicOverworldJungle, Self::MusicOverworldJungle,
Self::MusicOverworldSparseJungle, Self::MusicOverworldSparseJungle,
Self::MusicOverworldBambooJungle, Self::MusicOverworldBambooJungle,
Self::MusicOverworldSulfurCaves,
Self::MusicUnderWater, Self::MusicUnderWater,
Self::EntityNautilusAmbient, Self::EntityNautilusAmbient,
Self::EntityNautilusAmbientLand, Self::EntityNautilusAmbientLand,
@ -8637,6 +8944,12 @@ impl Sound {
Self::EntityStrayDeath, Self::EntityStrayDeath,
Self::EntityStrayHurt, Self::EntityStrayHurt,
Self::EntityStrayStep, Self::EntityStrayStep,
Self::BlockSulfurSpikeBreak,
Self::BlockSulfurSpikeStep,
Self::BlockSulfurSpikePlace,
Self::BlockSulfurSpikeHit,
Self::BlockSulfurSpikeFall,
Self::BlockSulfurSpikeLand,
Self::BlockSweetBerryBushBreak, Self::BlockSweetBerryBushBreak,
Self::BlockSweetBerryBushPlace, Self::BlockSweetBerryBushPlace,
Self::BlockSweetBerryBushPickBerries, Self::BlockSweetBerryBushPickBerries,
@ -8934,6 +9247,62 @@ impl Sound {
Self::ItemSaddleUnequip, Self::ItemSaddleUnequip,
Self::ItemNautilusSaddleUnderwaterEquip, Self::ItemNautilusSaddleUnderwaterEquip,
Self::ItemNautilusSaddleEquip, Self::ItemNautilusSaddleEquip,
Self::BlockSulfurBreak,
Self::BlockSulfurStep,
Self::BlockSulfurPlace,
Self::BlockSulfurHit,
Self::BlockSulfurFall,
Self::BlockPotentSulfurBreak,
Self::BlockPotentSulfurStep,
Self::BlockPotentSulfurPlace,
Self::BlockPotentSulfurHit,
Self::BlockPotentSulfurFall,
Self::BlockPotentSulfurGeyserEruption,
Self::BlockPotentSulfurGeyserEruptionActive,
Self::BlockPotentSulfurGeyserContinuousEruption,
Self::BlockPotentSulfurGeyserContinuousEruptionActive,
Self::BlockCinnabarBreak,
Self::BlockCinnabarStep,
Self::BlockCinnabarPlace,
Self::BlockCinnabarHit,
Self::BlockCinnabarFall,
Self::EntitySulfurCubeAbsorb,
Self::EntitySulfurCubeBounce,
Self::EntitySulfurCubeDeath,
Self::EntitySulfurCubeEject,
Self::EntitySulfurCubeHurt,
Self::EntitySulfurCubeJump,
Self::EntitySulfurCubeRegularHit,
Self::EntitySulfurCubeRegularPush,
Self::EntitySulfurCubeBouncyHit,
Self::EntitySulfurCubeBouncyPush,
Self::EntitySulfurCubeSlowBouncyHit,
Self::EntitySulfurCubeSlowBouncyPush,
Self::EntitySulfurCubeSlowFlatHit,
Self::EntitySulfurCubeSlowFlatPush,
Self::EntitySulfurCubeFastFlatHit,
Self::EntitySulfurCubeFastFlatPush,
Self::EntitySulfurCubeLightHit,
Self::EntitySulfurCubeLightPush,
Self::EntitySulfurCubeFastSlidingHit,
Self::EntitySulfurCubeFastSlidingPush,
Self::EntitySulfurCubeSlowSlidingHit,
Self::EntitySulfurCubeSlowSlidingPush,
Self::EntitySulfurCubeStickyHit,
Self::EntitySulfurCubeStickyPush,
Self::EntitySulfurCubeHighResistanceHit,
Self::EntitySulfurCubeHighResistancePush,
Self::EntitySulfurCubeExplosiveHit,
Self::EntitySulfurCubeExplosivePush,
Self::EntitySulfurCubeHotHit,
Self::EntitySulfurCubeHotPush,
Self::EntitySulfurCubeSquish,
Self::BlockPotentSulfurNoxiousGas,
Self::EntitySmallSulfurCubeDeath,
Self::EntitySmallSulfurCubeHurt,
Self::EntitySmallSulfurCubeJump,
Self::EntitySmallSulfurCubeSquish,
Self::EntitySmallSulfurCubeEat,
] ]
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,107 +2,108 @@
use crate::entity_type::EntityType; use crate::entity_type::EntityType;
pub fn entity_from_egg(id: u16) -> Option<&'static EntityType> { pub fn entity_from_egg(id: u16) -> Option<&'static EntityType> {
match id { match id {
1131u16 => Some(&EntityType::CHICKEN), 1159u16 => Some(&EntityType::CHICKEN),
1132u16 => Some(&EntityType::COW), 1160u16 => Some(&EntityType::COW),
1133u16 => Some(&EntityType::PIG), 1161u16 => Some(&EntityType::PIG),
1134u16 => Some(&EntityType::SHEEP), 1162u16 => Some(&EntityType::SHEEP),
1135u16 => Some(&EntityType::CAMEL), 1163u16 => Some(&EntityType::CAMEL),
1136u16 => Some(&EntityType::DONKEY), 1164u16 => Some(&EntityType::DONKEY),
1137u16 => Some(&EntityType::HORSE), 1165u16 => Some(&EntityType::HORSE),
1138u16 => Some(&EntityType::MULE), 1166u16 => Some(&EntityType::MULE),
1139u16 => Some(&EntityType::CAT), 1167u16 => Some(&EntityType::CAT),
1140u16 => Some(&EntityType::PARROT), 1168u16 => Some(&EntityType::PARROT),
1141u16 => Some(&EntityType::WOLF), 1169u16 => Some(&EntityType::WOLF),
1142u16 => Some(&EntityType::ARMADILLO), 1170u16 => Some(&EntityType::ARMADILLO),
1143u16 => Some(&EntityType::BAT), 1171u16 => Some(&EntityType::BAT),
1144u16 => Some(&EntityType::BEE), 1172u16 => Some(&EntityType::BEE),
1145u16 => Some(&EntityType::FOX), 1173u16 => Some(&EntityType::FOX),
1146u16 => Some(&EntityType::GOAT), 1174u16 => Some(&EntityType::GOAT),
1147u16 => Some(&EntityType::LLAMA), 1175u16 => Some(&EntityType::LLAMA),
1148u16 => Some(&EntityType::OCELOT), 1176u16 => Some(&EntityType::OCELOT),
1149u16 => Some(&EntityType::PANDA), 1177u16 => Some(&EntityType::PANDA),
1150u16 => Some(&EntityType::POLAR_BEAR), 1178u16 => Some(&EntityType::POLAR_BEAR),
1151u16 => Some(&EntityType::RABBIT), 1179u16 => Some(&EntityType::RABBIT),
1152u16 => Some(&EntityType::AXOLOTL), 1180u16 => Some(&EntityType::AXOLOTL),
1153u16 => Some(&EntityType::COD), 1181u16 => Some(&EntityType::COD),
1154u16 => Some(&EntityType::DOLPHIN), 1182u16 => Some(&EntityType::DOLPHIN),
1155u16 => Some(&EntityType::FROG), 1183u16 => Some(&EntityType::FROG),
1156u16 => Some(&EntityType::GLOW_SQUID), 1184u16 => Some(&EntityType::GLOW_SQUID),
1157u16 => Some(&EntityType::NAUTILUS), 1185u16 => Some(&EntityType::NAUTILUS),
1158u16 => Some(&EntityType::PUFFERFISH), 1186u16 => Some(&EntityType::PUFFERFISH),
1159u16 => Some(&EntityType::SALMON), 1187u16 => Some(&EntityType::SALMON),
1160u16 => Some(&EntityType::SQUID), 1188u16 => Some(&EntityType::SQUID),
1161u16 => Some(&EntityType::TADPOLE), 1189u16 => Some(&EntityType::TADPOLE),
1162u16 => Some(&EntityType::TROPICAL_FISH), 1190u16 => Some(&EntityType::TROPICAL_FISH),
1163u16 => Some(&EntityType::TURTLE), 1191u16 => Some(&EntityType::TURTLE),
1164u16 => Some(&EntityType::ALLAY), 1192u16 => Some(&EntityType::ALLAY),
1165u16 => Some(&EntityType::MOOSHROOM), 1193u16 => Some(&EntityType::MOOSHROOM),
1166u16 => Some(&EntityType::SNIFFER), 1194u16 => Some(&EntityType::SNIFFER),
1167u16 => Some(&EntityType::COPPER_GOLEM), 1195u16 => Some(&EntityType::SULFUR_CUBE),
1168u16 => Some(&EntityType::IRON_GOLEM), 1196u16 => Some(&EntityType::COPPER_GOLEM),
1169u16 => Some(&EntityType::SNOW_GOLEM), 1197u16 => Some(&EntityType::IRON_GOLEM),
1170u16 => Some(&EntityType::TRADER_LLAMA), 1198u16 => Some(&EntityType::SNOW_GOLEM),
1171u16 => Some(&EntityType::VILLAGER), 1199u16 => Some(&EntityType::TRADER_LLAMA),
1172u16 => Some(&EntityType::WANDERING_TRADER), 1200u16 => Some(&EntityType::VILLAGER),
1173u16 => Some(&EntityType::BOGGED), 1201u16 => Some(&EntityType::WANDERING_TRADER),
1174u16 => Some(&EntityType::CAMEL_HUSK), 1202u16 => Some(&EntityType::BOGGED),
1175u16 => Some(&EntityType::DROWNED), 1203u16 => Some(&EntityType::CAMEL_HUSK),
1176u16 => Some(&EntityType::HUSK), 1204u16 => Some(&EntityType::DROWNED),
1177u16 => Some(&EntityType::PARCHED), 1205u16 => Some(&EntityType::HUSK),
1178u16 => Some(&EntityType::SKELETON), 1206u16 => Some(&EntityType::PARCHED),
1179u16 => Some(&EntityType::SKELETON_HORSE), 1207u16 => Some(&EntityType::SKELETON),
1180u16 => Some(&EntityType::STRAY), 1208u16 => Some(&EntityType::SKELETON_HORSE),
1181u16 => Some(&EntityType::WITHER), 1209u16 => Some(&EntityType::STRAY),
1182u16 => Some(&EntityType::WITHER_SKELETON), 1210u16 => Some(&EntityType::WITHER),
1183u16 => Some(&EntityType::ZOMBIE), 1211u16 => Some(&EntityType::WITHER_SKELETON),
1184u16 => Some(&EntityType::ZOMBIE_HORSE), 1212u16 => Some(&EntityType::ZOMBIE),
1185u16 => Some(&EntityType::ZOMBIE_NAUTILUS), 1213u16 => Some(&EntityType::ZOMBIE_HORSE),
1186u16 => Some(&EntityType::ZOMBIE_VILLAGER), 1214u16 => Some(&EntityType::ZOMBIE_NAUTILUS),
1187u16 => Some(&EntityType::CAVE_SPIDER), 1215u16 => Some(&EntityType::ZOMBIE_VILLAGER),
1188u16 => Some(&EntityType::SPIDER), 1216u16 => Some(&EntityType::CAVE_SPIDER),
1189u16 => Some(&EntityType::BREEZE), 1217u16 => Some(&EntityType::SPIDER),
1190u16 => Some(&EntityType::CREAKING), 1218u16 => Some(&EntityType::BREEZE),
1191u16 => Some(&EntityType::CREEPER), 1219u16 => Some(&EntityType::CREAKING),
1192u16 => Some(&EntityType::ELDER_GUARDIAN), 1220u16 => Some(&EntityType::CREEPER),
1193u16 => Some(&EntityType::GUARDIAN), 1221u16 => Some(&EntityType::ELDER_GUARDIAN),
1194u16 => Some(&EntityType::PHANTOM), 1222u16 => Some(&EntityType::GUARDIAN),
1195u16 => Some(&EntityType::SILVERFISH), 1223u16 => Some(&EntityType::PHANTOM),
1196u16 => Some(&EntityType::SLIME), 1224u16 => Some(&EntityType::SILVERFISH),
1197u16 => Some(&EntityType::WARDEN), 1225u16 => Some(&EntityType::SLIME),
1198u16 => Some(&EntityType::WITCH), 1226u16 => Some(&EntityType::WARDEN),
1199u16 => Some(&EntityType::EVOKER), 1227u16 => Some(&EntityType::WITCH),
1200u16 => Some(&EntityType::PILLAGER), 1228u16 => Some(&EntityType::EVOKER),
1201u16 => Some(&EntityType::RAVAGER), 1229u16 => Some(&EntityType::PILLAGER),
1202u16 => Some(&EntityType::VINDICATOR), 1230u16 => Some(&EntityType::RAVAGER),
1203u16 => Some(&EntityType::VEX), 1231u16 => Some(&EntityType::VINDICATOR),
1204u16 => Some(&EntityType::BLAZE), 1232u16 => Some(&EntityType::VEX),
1205u16 => Some(&EntityType::GHAST), 1233u16 => Some(&EntityType::BLAZE),
1206u16 => Some(&EntityType::HAPPY_GHAST), 1234u16 => Some(&EntityType::GHAST),
1207u16 => Some(&EntityType::HOGLIN), 1235u16 => Some(&EntityType::HAPPY_GHAST),
1208u16 => Some(&EntityType::MAGMA_CUBE), 1236u16 => Some(&EntityType::HOGLIN),
1209u16 => Some(&EntityType::PIGLIN), 1237u16 => Some(&EntityType::MAGMA_CUBE),
1210u16 => Some(&EntityType::PIGLIN_BRUTE), 1238u16 => Some(&EntityType::PIGLIN),
1211u16 => Some(&EntityType::STRIDER), 1239u16 => Some(&EntityType::PIGLIN_BRUTE),
1212u16 => Some(&EntityType::ZOGLIN), 1240u16 => Some(&EntityType::STRIDER),
1213u16 => Some(&EntityType::ZOMBIFIED_PIGLIN), 1241u16 => Some(&EntityType::ZOGLIN),
1214u16 => Some(&EntityType::ENDER_DRAGON), 1242u16 => Some(&EntityType::ZOMBIFIED_PIGLIN),
1215u16 => Some(&EntityType::ENDERMAN), 1243u16 => Some(&EntityType::ENDER_DRAGON),
1216u16 => Some(&EntityType::ENDERMITE), 1244u16 => Some(&EntityType::ENDERMAN),
1217u16 => Some(&EntityType::SHULKER), 1245u16 => Some(&EntityType::ENDERMITE),
1246u16 => Some(&EntityType::SHULKER),
_ => None, _ => None,
} }
} }
pub fn spawn_egg_ids() -> Box<[u16]> { pub fn spawn_egg_ids() -> Box<[u16]> {
[ [
1131u16, 1132u16, 1133u16, 1134u16, 1135u16, 1136u16, 1137u16, 1138u16, 1139u16, 1140u16, 1159u16, 1160u16, 1161u16, 1162u16, 1163u16, 1164u16, 1165u16, 1166u16, 1167u16, 1168u16,
1141u16, 1142u16, 1143u16, 1144u16, 1145u16, 1146u16, 1147u16, 1148u16, 1149u16, 1150u16, 1169u16, 1170u16, 1171u16, 1172u16, 1173u16, 1174u16, 1175u16, 1176u16, 1177u16, 1178u16,
1151u16, 1152u16, 1153u16, 1154u16, 1155u16, 1156u16, 1157u16, 1158u16, 1159u16, 1160u16, 1179u16, 1180u16, 1181u16, 1182u16, 1183u16, 1184u16, 1185u16, 1186u16, 1187u16, 1188u16,
1161u16, 1162u16, 1163u16, 1164u16, 1165u16, 1166u16, 1167u16, 1168u16, 1169u16, 1170u16, 1189u16, 1190u16, 1191u16, 1192u16, 1193u16, 1194u16, 1195u16, 1196u16, 1197u16, 1198u16,
1171u16, 1172u16, 1173u16, 1174u16, 1175u16, 1176u16, 1177u16, 1178u16, 1179u16, 1180u16, 1199u16, 1200u16, 1201u16, 1202u16, 1203u16, 1204u16, 1205u16, 1206u16, 1207u16, 1208u16,
1181u16, 1182u16, 1183u16, 1184u16, 1185u16, 1186u16, 1187u16, 1188u16, 1189u16, 1190u16, 1209u16, 1210u16, 1211u16, 1212u16, 1213u16, 1214u16, 1215u16, 1216u16, 1217u16, 1218u16,
1191u16, 1192u16, 1193u16, 1194u16, 1195u16, 1196u16, 1197u16, 1198u16, 1199u16, 1200u16, 1219u16, 1220u16, 1221u16, 1222u16, 1223u16, 1224u16, 1225u16, 1226u16, 1227u16, 1228u16,
1201u16, 1202u16, 1203u16, 1204u16, 1205u16, 1206u16, 1207u16, 1208u16, 1209u16, 1210u16, 1229u16, 1230u16, 1231u16, 1232u16, 1233u16, 1234u16, 1235u16, 1236u16, 1237u16, 1238u16,
1211u16, 1212u16, 1213u16, 1214u16, 1215u16, 1216u16, 1217u16, 1239u16, 1240u16, 1241u16, 1242u16, 1243u16, 1244u16, 1245u16, 1246u16,
] ]
.into() .into()
} }

View File

@ -55,165 +55,165 @@ impl TryFrom<i32> for StatisticCategory {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[repr(i32)] #[repr(i32)]
pub enum CustomStatistic { pub enum CustomStatistic {
DamageBlockedByShield = 29i32,
InteractWithBeacon = 46i32,
FallOneCm = 10i32,
OpenChest = 59i32,
PlayTime = 1i32,
WalkOneCm = 6i32,
RaidWin = 72i32,
DamageDealtResisted = 27i32,
CleanArmor = 42i32,
SwimOneCm = 20i32,
HappyGhastOneCm = 17i32,
TalkedToVillager = 37i32,
EnchantItem = 55i32,
Drop = 24i32,
PotFlower = 52i32,
OpenShulkerBox = 61i32,
WalkOnWaterOneCm = 9i32,
InteractWithCampfire = 66i32,
InteractWithFurnace = 57i32,
InteractWithLectern = 65i32,
RaidTrigger = 71i32,
StriderOneCm = 21i32,
CrouchOneCm = 7i32,
EatCakeSlice = 39i32,
PlayRecord = 56i32,
InteractWithCraftingTable = 58i32,
SneakTime = 5i32,
BoatOneCm = 15i32,
DamageResisted = 31i32,
Deaths = 32i32,
TotalWorldTime = 2i32,
PigOneCm = 16i32,
AviateOneCm = 19i32, AviateOneCm = 19i32,
Jump = 23i32,
AnimalsBred = 34i32,
InspectHopper = 48i32,
InteractWithBlastFurnace = 63i32,
SprintOneCm = 8i32,
DamageTaken = 28i32,
MobKills = 33i32,
InteractWithCartographyTable = 67i32,
TimeSinceDeath = 3i32,
MinecartOneCm = 14i32,
InteractWithGrindstone = 74i32,
PlayNoteblock = 50i32,
OpenBarrel = 62i32,
NautilusOneCm = 22i32,
CleanShulkerBox = 44i32,
FlyOneCm = 12i32,
PlayerKills = 35i32,
InspectDropper = 47i32,
InteractWithLoom = 68i32,
DamageDealt = 25i32, DamageDealt = 25i32,
InspectDispenser = 49i32,
UseCauldron = 41i32,
TimeSinceRest = 4i32,
InteractWithBrewingstand = 45i32,
InteractWithAnvil = 73i32,
TuneNoteblock = 51i32,
BellRing = 70i32,
FillCauldron = 40i32,
FishCaught = 36i32,
ClimbOneCm = 11i32,
InteractWithSmithingTable = 76i32,
TriggerTrappedChest = 53i32,
InteractWithSmoker = 64i32,
OpenEnderchest = 54i32,
CleanBanner = 43i32, CleanBanner = 43i32,
LeaveGame = 0i32, InspectDispenser = 49i32,
SleepInBed = 60i32, PotFlower = 52i32,
DamageDealtAbsorbed = 26i32,
WalkUnderWaterOneCm = 13i32,
TradedWithVillager = 38i32, TradedWithVillager = 38i32,
InteractWithStonecutter = 69i32, PlayNoteblock = 50i32,
HorseOneCm = 18i32, WalkOnWaterOneCm = 9i32,
OpenShulkerBox = 61i32,
DamageResisted = 31i32,
InteractWithLectern = 65i32,
BellRing = 70i32,
UseCauldron = 41i32,
InteractWithAnvil = 73i32,
FallOneCm = 10i32,
PigOneCm = 16i32,
EnchantItem = 55i32,
SleepInBed = 60i32,
FlyOneCm = 12i32,
RaidTrigger = 71i32,
DamageDealtResisted = 27i32,
InteractWithBrewingstand = 45i32,
InspectHopper = 48i32,
PlayRecord = 56i32,
WalkOneCm = 6i32,
CleanArmor = 42i32,
InteractWithCartographyTable = 67i32,
OpenEnderchest = 54i32,
InteractWithFurnace = 57i32,
SwimOneCm = 20i32,
DamageAbsorbed = 30i32, DamageAbsorbed = 30i32,
OpenBarrel = 62i32,
TimeSinceRest = 4i32,
DamageBlockedByShield = 29i32,
NautilusOneCm = 22i32,
TimeSinceDeath = 3i32,
InteractWithBlastFurnace = 63i32,
ClimbOneCm = 11i32,
HappyGhastOneCm = 17i32,
TotalWorldTime = 2i32,
Deaths = 32i32,
InteractWithBeacon = 46i32,
PlayTime = 1i32,
InteractWithCraftingTable = 58i32,
MinecartOneCm = 14i32,
TalkedToVillager = 37i32,
PlayerKills = 35i32,
InteractWithStonecutter = 69i32,
InteractWithSmithingTable = 76i32,
Jump = 23i32,
FillCauldron = 40i32,
RaidWin = 72i32,
TriggerTrappedChest = 53i32,
BoatOneCm = 15i32,
DamageDealtAbsorbed = 26i32,
CleanShulkerBox = 44i32,
TuneNoteblock = 51i32,
InteractWithCampfire = 66i32,
SprintOneCm = 8i32,
InteractWithLoom = 68i32,
FishCaught = 36i32,
InteractWithGrindstone = 74i32,
DamageTaken = 28i32,
InspectDropper = 47i32,
AnimalsBred = 34i32,
WalkUnderWaterOneCm = 13i32,
HorseOneCm = 18i32,
OpenChest = 59i32,
MobKills = 33i32,
SneakTime = 5i32,
EatCakeSlice = 39i32,
CrouchOneCm = 7i32,
InteractWithSmoker = 64i32,
TargetHit = 75i32, TargetHit = 75i32,
StriderOneCm = 21i32,
LeaveGame = 0i32,
Drop = 24i32,
} }
impl CustomStatistic { impl CustomStatistic {
#[must_use] #[must_use]
pub const fn from_i32(id: i32) -> Option<Self> { pub const fn from_i32(id: i32) -> Option<Self> {
match id { match id {
29i32 => Some(Self::DamageBlockedByShield),
46i32 => Some(Self::InteractWithBeacon),
10i32 => Some(Self::FallOneCm),
59i32 => Some(Self::OpenChest),
1i32 => Some(Self::PlayTime),
6i32 => Some(Self::WalkOneCm),
72i32 => Some(Self::RaidWin),
27i32 => Some(Self::DamageDealtResisted),
42i32 => Some(Self::CleanArmor),
20i32 => Some(Self::SwimOneCm),
17i32 => Some(Self::HappyGhastOneCm),
37i32 => Some(Self::TalkedToVillager),
55i32 => Some(Self::EnchantItem),
24i32 => Some(Self::Drop),
52i32 => Some(Self::PotFlower),
61i32 => Some(Self::OpenShulkerBox),
9i32 => Some(Self::WalkOnWaterOneCm),
66i32 => Some(Self::InteractWithCampfire),
57i32 => Some(Self::InteractWithFurnace),
65i32 => Some(Self::InteractWithLectern),
71i32 => Some(Self::RaidTrigger),
21i32 => Some(Self::StriderOneCm),
7i32 => Some(Self::CrouchOneCm),
39i32 => Some(Self::EatCakeSlice),
56i32 => Some(Self::PlayRecord),
58i32 => Some(Self::InteractWithCraftingTable),
5i32 => Some(Self::SneakTime),
15i32 => Some(Self::BoatOneCm),
31i32 => Some(Self::DamageResisted),
32i32 => Some(Self::Deaths),
2i32 => Some(Self::TotalWorldTime),
16i32 => Some(Self::PigOneCm),
19i32 => Some(Self::AviateOneCm), 19i32 => Some(Self::AviateOneCm),
23i32 => Some(Self::Jump),
34i32 => Some(Self::AnimalsBred),
48i32 => Some(Self::InspectHopper),
63i32 => Some(Self::InteractWithBlastFurnace),
8i32 => Some(Self::SprintOneCm),
28i32 => Some(Self::DamageTaken),
33i32 => Some(Self::MobKills),
67i32 => Some(Self::InteractWithCartographyTable),
3i32 => Some(Self::TimeSinceDeath),
14i32 => Some(Self::MinecartOneCm),
74i32 => Some(Self::InteractWithGrindstone),
50i32 => Some(Self::PlayNoteblock),
62i32 => Some(Self::OpenBarrel),
22i32 => Some(Self::NautilusOneCm),
44i32 => Some(Self::CleanShulkerBox),
12i32 => Some(Self::FlyOneCm),
35i32 => Some(Self::PlayerKills),
47i32 => Some(Self::InspectDropper),
68i32 => Some(Self::InteractWithLoom),
25i32 => Some(Self::DamageDealt), 25i32 => Some(Self::DamageDealt),
49i32 => Some(Self::InspectDispenser),
41i32 => Some(Self::UseCauldron),
4i32 => Some(Self::TimeSinceRest),
45i32 => Some(Self::InteractWithBrewingstand),
73i32 => Some(Self::InteractWithAnvil),
51i32 => Some(Self::TuneNoteblock),
70i32 => Some(Self::BellRing),
40i32 => Some(Self::FillCauldron),
36i32 => Some(Self::FishCaught),
11i32 => Some(Self::ClimbOneCm),
76i32 => Some(Self::InteractWithSmithingTable),
53i32 => Some(Self::TriggerTrappedChest),
64i32 => Some(Self::InteractWithSmoker),
54i32 => Some(Self::OpenEnderchest),
43i32 => Some(Self::CleanBanner), 43i32 => Some(Self::CleanBanner),
0i32 => Some(Self::LeaveGame), 49i32 => Some(Self::InspectDispenser),
60i32 => Some(Self::SleepInBed), 52i32 => Some(Self::PotFlower),
26i32 => Some(Self::DamageDealtAbsorbed),
13i32 => Some(Self::WalkUnderWaterOneCm),
38i32 => Some(Self::TradedWithVillager), 38i32 => Some(Self::TradedWithVillager),
69i32 => Some(Self::InteractWithStonecutter), 50i32 => Some(Self::PlayNoteblock),
18i32 => Some(Self::HorseOneCm), 9i32 => Some(Self::WalkOnWaterOneCm),
61i32 => Some(Self::OpenShulkerBox),
31i32 => Some(Self::DamageResisted),
65i32 => Some(Self::InteractWithLectern),
70i32 => Some(Self::BellRing),
41i32 => Some(Self::UseCauldron),
73i32 => Some(Self::InteractWithAnvil),
10i32 => Some(Self::FallOneCm),
16i32 => Some(Self::PigOneCm),
55i32 => Some(Self::EnchantItem),
60i32 => Some(Self::SleepInBed),
12i32 => Some(Self::FlyOneCm),
71i32 => Some(Self::RaidTrigger),
27i32 => Some(Self::DamageDealtResisted),
45i32 => Some(Self::InteractWithBrewingstand),
48i32 => Some(Self::InspectHopper),
56i32 => Some(Self::PlayRecord),
6i32 => Some(Self::WalkOneCm),
42i32 => Some(Self::CleanArmor),
67i32 => Some(Self::InteractWithCartographyTable),
54i32 => Some(Self::OpenEnderchest),
57i32 => Some(Self::InteractWithFurnace),
20i32 => Some(Self::SwimOneCm),
30i32 => Some(Self::DamageAbsorbed), 30i32 => Some(Self::DamageAbsorbed),
62i32 => Some(Self::OpenBarrel),
4i32 => Some(Self::TimeSinceRest),
29i32 => Some(Self::DamageBlockedByShield),
22i32 => Some(Self::NautilusOneCm),
3i32 => Some(Self::TimeSinceDeath),
63i32 => Some(Self::InteractWithBlastFurnace),
11i32 => Some(Self::ClimbOneCm),
17i32 => Some(Self::HappyGhastOneCm),
2i32 => Some(Self::TotalWorldTime),
32i32 => Some(Self::Deaths),
46i32 => Some(Self::InteractWithBeacon),
1i32 => Some(Self::PlayTime),
58i32 => Some(Self::InteractWithCraftingTable),
14i32 => Some(Self::MinecartOneCm),
37i32 => Some(Self::TalkedToVillager),
35i32 => Some(Self::PlayerKills),
69i32 => Some(Self::InteractWithStonecutter),
76i32 => Some(Self::InteractWithSmithingTable),
23i32 => Some(Self::Jump),
40i32 => Some(Self::FillCauldron),
72i32 => Some(Self::RaidWin),
53i32 => Some(Self::TriggerTrappedChest),
15i32 => Some(Self::BoatOneCm),
26i32 => Some(Self::DamageDealtAbsorbed),
44i32 => Some(Self::CleanShulkerBox),
51i32 => Some(Self::TuneNoteblock),
66i32 => Some(Self::InteractWithCampfire),
8i32 => Some(Self::SprintOneCm),
68i32 => Some(Self::InteractWithLoom),
36i32 => Some(Self::FishCaught),
74i32 => Some(Self::InteractWithGrindstone),
28i32 => Some(Self::DamageTaken),
47i32 => Some(Self::InspectDropper),
34i32 => Some(Self::AnimalsBred),
13i32 => Some(Self::WalkUnderWaterOneCm),
18i32 => Some(Self::HorseOneCm),
59i32 => Some(Self::OpenChest),
33i32 => Some(Self::MobKills),
5i32 => Some(Self::SneakTime),
39i32 => Some(Self::EatCakeSlice),
7i32 => Some(Self::CrouchOneCm),
64i32 => Some(Self::InteractWithSmoker),
75i32 => Some(Self::TargetHit), 75i32 => Some(Self::TargetHit),
21i32 => Some(Self::StriderOneCm),
0i32 => Some(Self::LeaveGame),
24i32 => Some(Self::Drop),
_ => None, _ => None,
} }
} }

View File

@ -50,10 +50,15 @@ pub struct WeightedEntry {
pub structure: StructureKeys, pub structure: StructureKeys,
pub weight: u32, pub weight: u32,
} }
pub struct ExclusionZone {
pub other_set: &'static str,
pub chunk_count: i32,
}
pub struct StructurePlacement { pub struct StructurePlacement {
pub frequency_reduction_method: Option<FrequencyReductionMethod>, pub frequency_reduction_method: Option<FrequencyReductionMethod>,
pub frequency: Option<f32>, pub frequency: Option<f32>,
pub salt: u32, pub salt: u32,
pub exclusion_zone: Option<ExclusionZone>,
pub placement_type: StructurePlacementType, pub placement_type: StructurePlacementType,
} }
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
@ -102,6 +107,26 @@ pub enum TerrainAdaptation {
Bury, Bury,
Encapsulate, Encapsulate,
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum StructureType {
Jigsaw,
BuriedTreasure,
DesertPyramid,
EndCity,
Fortress,
Igloo,
JungleTemple,
WoodlandMansion,
Mineshaft,
OceanMonument,
NetherFossil,
OceanRuin,
RuinedPortal,
Shipwreck,
Stronghold,
SwampHut,
Unknown,
}
pub struct Structure { pub struct Structure {
pub biomes: &'static str, pub biomes: &'static str,
pub step: GenerationStep, pub step: GenerationStep,
@ -113,6 +138,8 @@ pub struct Structure {
pub max_distance_from_center: Option<i32>, pub max_distance_from_center: Option<i32>,
pub liquid_settings: Option<&'static str>, pub liquid_settings: Option<&'static str>,
pub dimension_padding: Option<i32>, pub dimension_padding: Option<i32>,
pub use_expansion_hack: Option<bool>,
pub structure_type: StructureType,
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum GenerationStep { pub enum GenerationStep {
@ -155,6 +182,8 @@ impl Structure {
max_distance_from_center: Some(116i32), max_distance_from_center: Some(116i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(false),
structure_type: StructureType::Jigsaw,
}; };
pub const BASTION_REMNANT: Self = Structure { pub const BASTION_REMNANT: Self = Structure {
biomes: "#minecraft:has_structure/bastion_remnant", biomes: "#minecraft:has_structure/bastion_remnant",
@ -167,6 +196,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(false),
structure_type: StructureType::Jigsaw,
}; };
pub const BURIED_TREASURE: Self = Structure { pub const BURIED_TREASURE: Self = Structure {
biomes: "#minecraft:has_structure/buried_treasure", biomes: "#minecraft:has_structure/buried_treasure",
@ -179,6 +210,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::BuriedTreasure,
}; };
pub const DESERT_PYRAMID: Self = Structure { pub const DESERT_PYRAMID: Self = Structure {
biomes: "#minecraft:has_structure/desert_pyramid", biomes: "#minecraft:has_structure/desert_pyramid",
@ -191,6 +224,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::DesertPyramid,
}; };
pub const END_CITY: Self = Structure { pub const END_CITY: Self = Structure {
biomes: "#minecraft:has_structure/end_city", biomes: "#minecraft:has_structure/end_city",
@ -203,6 +238,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::EndCity,
}; };
pub const FORTRESS: Self = Structure { pub const FORTRESS: Self = Structure {
biomes: "#minecraft:has_structure/nether_fortress", biomes: "#minecraft:has_structure/nether_fortress",
@ -215,6 +252,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Fortress,
}; };
pub const IGLOO: Self = Structure { pub const IGLOO: Self = Structure {
biomes: "#minecraft:has_structure/igloo", biomes: "#minecraft:has_structure/igloo",
@ -227,6 +266,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Igloo,
}; };
pub const JUNGLE_PYRAMID: Self = Structure { pub const JUNGLE_PYRAMID: Self = Structure {
biomes: "#minecraft:has_structure/jungle_temple", biomes: "#minecraft:has_structure/jungle_temple",
@ -239,6 +280,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::JungleTemple,
}; };
pub const MANSION: Self = Structure { pub const MANSION: Self = Structure {
biomes: "#minecraft:has_structure/woodland_mansion", biomes: "#minecraft:has_structure/woodland_mansion",
@ -251,6 +294,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::WoodlandMansion,
}; };
pub const MINESHAFT: Self = Structure { pub const MINESHAFT: Self = Structure {
biomes: "#minecraft:has_structure/mineshaft", biomes: "#minecraft:has_structure/mineshaft",
@ -263,6 +308,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Mineshaft,
}; };
pub const MINESHAFT_MESA: Self = Structure { pub const MINESHAFT_MESA: Self = Structure {
biomes: "#minecraft:has_structure/mineshaft_mesa", biomes: "#minecraft:has_structure/mineshaft_mesa",
@ -275,6 +322,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Mineshaft,
}; };
pub const MONUMENT: Self = Structure { pub const MONUMENT: Self = Structure {
biomes: "#minecraft:has_structure/ocean_monument", biomes: "#minecraft:has_structure/ocean_monument",
@ -287,6 +336,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::OceanMonument,
}; };
pub const NETHER_FOSSIL: Self = Structure { pub const NETHER_FOSSIL: Self = Structure {
biomes: "#minecraft:has_structure/nether_fossil", biomes: "#minecraft:has_structure/nether_fossil",
@ -299,6 +350,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::NetherFossil,
}; };
pub const OCEAN_RUIN_COLD: Self = Structure { pub const OCEAN_RUIN_COLD: Self = Structure {
biomes: "#minecraft:has_structure/ocean_ruin_cold", biomes: "#minecraft:has_structure/ocean_ruin_cold",
@ -311,6 +364,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::OceanRuin,
}; };
pub const OCEAN_RUIN_WARM: Self = Structure { pub const OCEAN_RUIN_WARM: Self = Structure {
biomes: "#minecraft:has_structure/ocean_ruin_warm", biomes: "#minecraft:has_structure/ocean_ruin_warm",
@ -323,6 +378,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::OceanRuin,
}; };
pub const PILLAGER_OUTPOST: Self = Structure { pub const PILLAGER_OUTPOST: Self = Structure {
biomes: "#minecraft:has_structure/pillager_outpost", biomes: "#minecraft:has_structure/pillager_outpost",
@ -335,6 +392,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
pub const RUINED_PORTAL: Self = Structure { pub const RUINED_PORTAL: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_standard", biomes: "#minecraft:has_structure/ruined_portal_standard",
@ -347,6 +406,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_DESERT: Self = Structure { pub const RUINED_PORTAL_DESERT: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_desert", biomes: "#minecraft:has_structure/ruined_portal_desert",
@ -359,6 +420,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_JUNGLE: Self = Structure { pub const RUINED_PORTAL_JUNGLE: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_jungle", biomes: "#minecraft:has_structure/ruined_portal_jungle",
@ -371,6 +434,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_MOUNTAIN: Self = Structure { pub const RUINED_PORTAL_MOUNTAIN: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_mountain", biomes: "#minecraft:has_structure/ruined_portal_mountain",
@ -383,6 +448,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_NETHER: Self = Structure { pub const RUINED_PORTAL_NETHER: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_nether", biomes: "#minecraft:has_structure/ruined_portal_nether",
@ -395,6 +462,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_OCEAN: Self = Structure { pub const RUINED_PORTAL_OCEAN: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_ocean", biomes: "#minecraft:has_structure/ruined_portal_ocean",
@ -407,6 +476,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const RUINED_PORTAL_SWAMP: Self = Structure { pub const RUINED_PORTAL_SWAMP: Self = Structure {
biomes: "#minecraft:has_structure/ruined_portal_swamp", biomes: "#minecraft:has_structure/ruined_portal_swamp",
@ -419,6 +490,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::RuinedPortal,
}; };
pub const SHIPWRECK: Self = Structure { pub const SHIPWRECK: Self = Structure {
biomes: "#minecraft:has_structure/shipwreck", biomes: "#minecraft:has_structure/shipwreck",
@ -431,6 +504,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Shipwreck,
}; };
pub const SHIPWRECK_BEACHED: Self = Structure { pub const SHIPWRECK_BEACHED: Self = Structure {
biomes: "#minecraft:has_structure/shipwreck_beached", biomes: "#minecraft:has_structure/shipwreck_beached",
@ -443,6 +518,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Shipwreck,
}; };
pub const STRONGHOLD: Self = Structure { pub const STRONGHOLD: Self = Structure {
biomes: "#minecraft:has_structure/stronghold", biomes: "#minecraft:has_structure/stronghold",
@ -455,6 +532,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::Stronghold,
}; };
pub const SWAMP_HUT: Self = Structure { pub const SWAMP_HUT: Self = Structure {
biomes: "#minecraft:has_structure/swamp_hut", biomes: "#minecraft:has_structure/swamp_hut",
@ -467,6 +546,8 @@ impl Structure {
max_distance_from_center: None, max_distance_from_center: None,
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: None,
structure_type: StructureType::SwampHut,
}; };
pub const TRAIL_RUINS: Self = Structure { pub const TRAIL_RUINS: Self = Structure {
biomes: "#minecraft:has_structure/trail_ruins", biomes: "#minecraft:has_structure/trail_ruins",
@ -479,6 +560,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(false),
structure_type: StructureType::Jigsaw,
}; };
pub const TRIAL_CHAMBERS: Self = Structure { pub const TRIAL_CHAMBERS: Self = Structure {
biomes: "#minecraft:has_structure/trial_chambers", biomes: "#minecraft:has_structure/trial_chambers",
@ -491,6 +574,8 @@ impl Structure {
max_distance_from_center: Some(116i32), max_distance_from_center: Some(116i32),
liquid_settings: Some("ignore_waterlogging"), liquid_settings: Some("ignore_waterlogging"),
dimension_padding: Some(10i32), dimension_padding: Some(10i32),
use_expansion_hack: Some(false),
structure_type: StructureType::Jigsaw,
}; };
pub const VILLAGE_DESERT: Self = Structure { pub const VILLAGE_DESERT: Self = Structure {
biomes: "#minecraft:has_structure/village_desert", biomes: "#minecraft:has_structure/village_desert",
@ -503,6 +588,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
pub const VILLAGE_PLAINS: Self = Structure { pub const VILLAGE_PLAINS: Self = Structure {
biomes: "#minecraft:has_structure/village_plains", biomes: "#minecraft:has_structure/village_plains",
@ -515,6 +602,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
pub const VILLAGE_SAVANNA: Self = Structure { pub const VILLAGE_SAVANNA: Self = Structure {
biomes: "#minecraft:has_structure/village_savanna", biomes: "#minecraft:has_structure/village_savanna",
@ -527,6 +616,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
pub const VILLAGE_SNOWY: Self = Structure { pub const VILLAGE_SNOWY: Self = Structure {
biomes: "#minecraft:has_structure/village_snowy", biomes: "#minecraft:has_structure/village_snowy",
@ -539,6 +630,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
pub const VILLAGE_TAIGA: Self = Structure { pub const VILLAGE_TAIGA: Self = Structure {
biomes: "#minecraft:has_structure/village_taiga", biomes: "#minecraft:has_structure/village_taiga",
@ -551,6 +644,8 @@ impl Structure {
max_distance_from_center: Some(80i32), max_distance_from_center: Some(80i32),
liquid_settings: None, liquid_settings: None,
dimension_padding: None, dimension_padding: None,
use_expansion_hack: Some(true),
structure_type: StructureType::Jigsaw,
}; };
#[must_use] #[must_use]
pub const fn get(key: &StructureKeys) -> &'static Self { pub const fn get(key: &StructureKeys) -> &'static Self {
@ -598,6 +693,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 20083232u32, salt: 20083232u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 24i32, spacing: 24i32,
separation: 8i32, separation: 8i32,
@ -614,6 +710,7 @@ impl StructureSet {
frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType2), frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType2),
frequency: Some(0.01f32), frequency: Some(0.01f32),
salt: 0u32, salt: 0u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 1i32, spacing: 1i32,
separation: 0i32, separation: 0i32,
@ -630,6 +727,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357617u32, salt: 14357617u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 8i32, separation: 8i32,
@ -646,6 +744,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 10387313u32, salt: 10387313u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 20i32, spacing: 20i32,
separation: 11i32, separation: 11i32,
@ -662,6 +761,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357618u32, salt: 14357618u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 8i32, separation: 8i32,
@ -678,6 +778,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357619u32, salt: 14357619u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 8i32, separation: 8i32,
@ -694,6 +795,7 @@ impl StructureSet {
frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType3), frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType3),
frequency: Some(0.004f32), frequency: Some(0.004f32),
salt: 0u32, salt: 0u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 1i32, spacing: 1i32,
separation: 0i32, separation: 0i32,
@ -716,6 +818,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 30084232u32, salt: 30084232u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 27i32, spacing: 27i32,
separation: 4i32, separation: 4i32,
@ -738,6 +841,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357921u32, salt: 14357921u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 2i32, spacing: 2i32,
separation: 1i32, separation: 1i32,
@ -754,6 +858,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 10387313u32, salt: 10387313u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 5i32, separation: 5i32,
@ -770,6 +875,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357621u32, salt: 14357621u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 20i32, spacing: 20i32,
separation: 8i32, separation: 8i32,
@ -792,6 +898,10 @@ impl StructureSet {
frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType1), frequency_reduction_method: Some(FrequencyReductionMethod::LegacyType1),
frequency: Some(0.2f32), frequency: Some(0.2f32),
salt: 165745296u32, salt: 165745296u32,
exclusion_zone: Some(ExclusionZone {
other_set: "minecraft:villages",
chunk_count: 10i32,
}),
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 8i32, separation: 8i32,
@ -808,6 +918,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 34222645u32, salt: 34222645u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 40i32, spacing: 40i32,
separation: 15i32, separation: 15i32,
@ -850,6 +961,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 165745295u32, salt: 165745295u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 24i32, spacing: 24i32,
separation: 4i32, separation: 4i32,
@ -872,6 +984,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 0u32, salt: 0u32,
exclusion_zone: None,
placement_type: StructurePlacementType::ConcentricRings( placement_type: StructurePlacementType::ConcentricRings(
ConcentricRingsStructurePlacement { ConcentricRingsStructurePlacement {
spread: 3i32, spread: 3i32,
@ -891,6 +1004,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 14357620u32, salt: 14357620u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 32i32, spacing: 32i32,
separation: 8i32, separation: 8i32,
@ -907,6 +1021,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 83469867u32, salt: 83469867u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 34i32, spacing: 34i32,
separation: 8i32, separation: 8i32,
@ -923,6 +1038,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 94251327u32, salt: 94251327u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 34i32, spacing: 34i32,
separation: 12i32, separation: 12i32,
@ -939,6 +1055,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 10387312u32, salt: 10387312u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 34i32, spacing: 34i32,
separation: 8i32, separation: 8i32,
@ -973,6 +1090,7 @@ impl StructureSet {
frequency_reduction_method: None, frequency_reduction_method: None,
frequency: None, frequency: None,
salt: 10387319u32, salt: 10387319u32,
exclusion_zone: None,
placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement { placement_type: StructurePlacementType::RandomSpread(RandomSpreadStructurePlacement {
spacing: 80i32, spacing: 80i32,
separation: 20i32, separation: 20i32,

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1582,8 +1582,8 @@ pub const TRADES_FLETCHER_LEVEL_4: &[VillagerTrade] = &[
pub const TRADES_FLETCHER_LEVEL_5: &[VillagerTrade] = &[ pub const TRADES_FLETCHER_LEVEL_5: &[VillagerTrade] = &[
VillagerTrade { VillagerTrade {
wants: VillagerTradeItem { wants: VillagerTradeItem {
item: &crate::item::Item::ARROW, item: &crate::item::Item::EMERALD,
count: 5i32, count: 2i32,
}, },
wants_b: None, wants_b: None,
gives: VillagerTradeItem { gives: VillagerTradeItem {

Some files were not shown because too many files have changed in this diff Show More