diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 68a2e75f84..a9ead92b9a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -101,6 +101,10 @@ jobs:
fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.10/0.18.1/1.1.0/server/jar
fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/dQ3p80zK/fabric-api-0.138.3%2B1.21.10.jar
packtest_url: https://cdn.modrinth.com/data/XsKUhp45/versions/11yGLsYO/packtest-2.3-beta1-mc1.21.10.jar
+ - version: '1.21.11'
+ fabric_server_url: https://meta.fabricmc.net/v2/versions/loader/1.21.11-rc2/0.18.1/1.1.0/server/jar
+ fabric_api_url: https://cdn.modrinth.com/data/P7dR8mSH/versions/RDb9rvBm/fabric-api-0.139.4%2B1.21.11.jar
+ packtest_url: https://cdn.modrinth.com/data/XsKUhp45/versions/GN6fvTsW/packtest-2.4-beta2-mc1.21.11.jar
name: 'test-${{ matrix.version }}'
runs-on: ubuntu-24.04
steps:
diff --git a/base/data/gm4/tags/entity_type/hostile.json b/base/data/gm4/tags/entity_type/hostile.json
index 5fda19d745..04fdbd1fa8 100644
--- a/base/data/gm4/tags/entity_type/hostile.json
+++ b/base/data/gm4/tags/entity_type/hostile.json
@@ -13,6 +13,7 @@
"minecraft:hoglin",
"minecraft:husk",
"minecraft:magma_cube",
+ {"id": "minecraft:parched", "required": false},
"minecraft:phantom",
"minecraft:piglin_brute",
"minecraft:pillager",
diff --git a/base/data/gm4/tags/entity_type/neutral_hostile.json b/base/data/gm4/tags/entity_type/neutral_hostile.json
index 860c911fe9..484c872eea 100644
--- a/base/data/gm4/tags/entity_type/neutral_hostile.json
+++ b/base/data/gm4/tags/entity_type/neutral_hostile.json
@@ -1,11 +1,13 @@
{
"values": [
+ {"id": "minecraft:camel_husk", "required": false},
"minecraft:cave_spider",
"minecraft:creaking",
"minecraft:drowned",
"minecraft:enderman",
"minecraft:piglin",
"minecraft:spider",
+ {"id": "minecraft:zombie_nautilus", "required": false},
"minecraft:zombified_piglin"
]
}
diff --git a/base/data/gm4/tags/entity_type/passive.json b/base/data/gm4/tags/entity_type/passive.json
index 18f67939b6..5540be574c 100644
--- a/base/data/gm4/tags/entity_type/passive.json
+++ b/base/data/gm4/tags/entity_type/passive.json
@@ -17,6 +17,7 @@
"minecraft:horse",
"minecraft:mooshroom",
"minecraft:mule",
+ {"id": "minecraft:nautilus", "required": false},
"minecraft:ocelot",
"minecraft:parrot",
"minecraft:pig",
diff --git a/gm4/plugins/backwards.py b/gm4/plugins/backwards.py
index ecbcf93cd6..db4a799a84 100644
--- a/gm4/plugins/backwards.py
+++ b/gm4/plugins/backwards.py
@@ -1,6 +1,7 @@
import logging
+import re
from typing import Any, Tuple, Callable
-from beet import Context, Pack, NamespaceFile, ItemModel
+from beet import Context, Pack, NamespaceFile, ItemModel, Function
logger = logging.getLogger("gm4.backwards")
@@ -11,38 +12,65 @@ def beet_default(ctx: Context):
# edited item model definition - replaced head with player_head
backport(ctx.assets, 63, playerhead_models_1_21_5)
+ # renamed gamerules
+ backport(ctx.data, 92, rename_gamerules)
+
def playerhead_models_1_21_5(id: str, resource: NamespaceFile):
if not isinstance(resource, ItemModel):
return None
+ if id != "minecraft:player_head":
+ return None
+
+ def recursive_replace(compound: dict[str,Any]):
+ for key, val in compound.items():
+ # recurse down the tree
+ if isinstance(val, list):
+ for subval in val: # type: ignore
+ if isinstance(subval, dict):
+ recursive_replace(subval) # type: ignore
+ elif isinstance(val, dict):
+ recursive_replace(val) # type: ignore
+ # then replace matching compounds
+ match val:
+ case {
+ "type": "minecraft:special",
+ "model": {
+ "type": "minecraft:player_head"
+ }
+ }:
+ compound[key]["model"]["type"] = "minecraft:head"
+ compound[key]["model"]["kind"] = "player"
+ case _: # type: ignore
+ pass
+
+ overlay = resource.copy()
+ recursive_replace(overlay.data)
+ return overlay
+
+
+# Only gamerules that are actually used are replaced
+GAMERULES_RENAMES = {
+ "command_block_output": "commandBlockOutput",
+ "spawn_phantoms": "doInsomnia",
+ "natural_health_regeneration": "naturalRegeneration",
+ "random_tick_speed": "randomTickSpeed",
+ "send_command_feedback": "sendCommandFeedback",
+ "show_death_messages": "showDeathMessages",
+}
+
+
+def rename_gamerules(id: str, resource: NamespaceFile):
+ if not isinstance(resource, Function):
+ return None
+ text = resource.text
+ for new_gamerule, old_gamerule in GAMERULES_RENAMES.items():
+ text = re.sub(f"gamerule (minecraft:)?{new_gamerule}\\b", f"gamerule {old_gamerule}", text)
+ if text == resource.text:
+ return None
overlay = resource.copy()
- json = overlay.data
- if id=="minecraft:player_head":
- def recursive_replace(compound: dict[str,Any]):
- for key, val in compound.items():
- # recurse down the tree
- if isinstance(val, list):
- for subval in val: # type: ignore
- if isinstance(subval, dict):
- recursive_replace(subval) # type: ignore
- elif isinstance(val, dict):
- recursive_replace(val) # type: ignore
- # then replace matching compounds
- match val:
- case {
- "type": "minecraft:special",
- "model": {
- "type": "minecraft:player_head"
- }
- }:
- compound[key]["model"]["type"] = "minecraft:head"
- compound[key]["model"]["kind"] = "player"
- case _: # type: ignore
- pass
-
- recursive_replace(json)
- return overlay
- return None
+ overlay.text = text
+ return overlay
def backport(pack: Pack[Any], format: int, run: Callable[[str, NamespaceFile], NamespaceFile | None]):
diff --git a/gm4/plugins/manifest.py b/gm4/plugins/manifest.py
index 1fd56e3a54..a5963390b9 100644
--- a/gm4/plugins/manifest.py
+++ b/gm4/plugins/manifest.py
@@ -21,7 +21,7 @@
parent_logger = logging.getLogger("gm4.manifest")
-SUPPORTED_GAME_VERSIONS = ["1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10"]
+SUPPORTED_GAME_VERSIONS = ["1.21.5", "1.21.6", "1.21.7", "1.21.8", "1.21.9", "1.21.10", "1.21.11"]
# config models for beet.yaml metas
CreditsModel = dict[str, list[str]]
diff --git a/gm4/plugins/write_mcmeta.py b/gm4/plugins/write_mcmeta.py
index 26395a1a1c..b14886d19e 100644
--- a/gm4/plugins/write_mcmeta.py
+++ b/gm4/plugins/write_mcmeta.py
@@ -10,21 +10,21 @@ def beet_default(ctx: Context):
manifest_entry = {v.id:v for v in (manifest.modules|manifest.libraries).values()}.get(ctx.project_id, NoneAttribute())
ctx.data.pack_format = 71
- ctx.data.supported_formats = {"min_inclusive": 71, "max_inclusive": 88}
+ ctx.data.supported_formats = {"min_inclusive": 71, "max_inclusive": 94}
ctx.data.min_format = 71
- ctx.data.max_format = (88, 0)
+ ctx.data.max_format = 94
ctx.assets.pack_format = 55
- ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 69}
+ ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 75}
ctx.assets.min_format = 55
- ctx.assets.max_format = (69, 0)
+ ctx.assets.max_format = 75
for pack in ctx.packs:
pack.description = [
ctx.project_name,
"\n",
{
- "text": f"Gamemode 4 (1.21.5 - 1.21.9)",
+ "text": f"Gamemode 4 (1.21.5+)",
"color": "#4AA0C7"
}
]
diff --git a/gm4_apple_trees/data/gm4_apple_trees/function/wandering_trader/register_trade.mcfunction b/gm4_apple_trees/data/gm4_apple_trees/function/wandering_trader/register_trade.mcfunction
index d3be35fbe0..e8919ab81b 100644
--- a/gm4_apple_trees/data/gm4_apple_trees/function/wandering_trader/register_trade.mcfunction
+++ b/gm4_apple_trees/data/gm4_apple_trees/function/wandering_trader/register_trade.mcfunction
@@ -4,6 +4,6 @@
# run from gm4_fruiting_trees:wandering_trader/add_trade
# apple sapling
-execute if predicate gm4_apple_trees:overworld run summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{},{id:"minecraft:emerald",count:5,Slot:1b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:8,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+execute if predicate gm4_apple_trees:overworld run summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{id:"minecraft:emerald",count:5,Slot:1b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:8,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.0 loot gm4_apple_trees:items/apple_tree_sapling
tag @e[type=trader_llama] remove gm4_new_trade_option
diff --git a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_bee_nest.mcfunction b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_bee_nest.mcfunction
index 41100bbdf7..85b2c5cd47 100644
--- a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_bee_nest.mcfunction
+++ b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_bee_nest.mcfunction
@@ -4,6 +4,6 @@
tp @s ~ 0 ~
-data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{},{id:"minecraft:emerald",count:8,Slot:1b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:emerald",count:8,Slot:1b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @s horse.0 loot gm4_balloon_animals:bee_nest
diff --git a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_chicken_egg.mcfunction b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_chicken_egg.mcfunction
index c1ae267360..077beb9cd0 100644
--- a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_chicken_egg.mcfunction
+++ b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_chicken_egg.mcfunction
@@ -4,7 +4,7 @@
tp @s ~ 0 ~
-data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{},{id:"minecraft:emerald",count:2,Slot:1b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1b,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:4,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:emerald",count:2,Slot:1b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1b,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:4,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
execute store result score $variant_id gm4_balloon_animals_data run random value 0..2
diff --git a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_turtle_egg.mcfunction b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_turtle_egg.mcfunction
index 75bdc40d9b..f1768625c5 100644
--- a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_turtle_egg.mcfunction
+++ b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/add_turtle_egg.mcfunction
@@ -4,6 +4,6 @@
tp @s ~ 0 ~
-data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{},{id:"minecraft:emerald",count:8,Slot:1b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:emerald",count:8,Slot:1b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @s horse.0 loot gm4_balloon_animals:turtle_egg
diff --git a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/spawn_trade_llama.mcfunction b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/spawn_trade_llama.mcfunction
index 352f203d0c..aac030c966 100644
--- a/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/spawn_trade_llama.mcfunction
+++ b/gm4_balloon_animals/data/gm4_balloon_animals/function/wandering_trader/trade/spawn_trade_llama.mcfunction
@@ -3,7 +3,7 @@
# run from wandering_trader/trade/init_[animal|wolf|farm]
tp @s ~ 0 ~
-data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{},{id:"minecraft:emerald",count:12,Slot:1b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+data merge entity @s {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:emerald",count:12,Slot:1b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @s horse.0 loot gm4_balloon_animals:lead
diff --git a/gm4_book_binders/backport_88/data/gm4_book_binders/loot_table/debind_book.json b/gm4_book_binders/backport_88/data/gm4_book_binders/loot_table/debind_book.json
new file mode 100644
index 0000000000..fc753909cd
--- /dev/null
+++ b/gm4_book_binders/backport_88/data/gm4_book_binders/loot_table/debind_book.json
@@ -0,0 +1,67 @@
+pools = []
+enchantments = ["minecraft:binding_curse", "minecraft:vanishing_curse", "minecraft:riptide", "minecraft:channeling", "minecraft:wind_burst", "minecraft:frost_walker", "minecraft:sharpness", "minecraft:smite", "minecraft:bane_of_arthropods", "minecraft:impaling", "minecraft:power", "minecraft:density", "minecraft:breach", "minecraft:piercing", "minecraft:sweeping_edge", "minecraft:multishot", "minecraft:fire_aspect", "minecraft:flame", "minecraft:knockback", "minecraft:punch", "minecraft:protection", "minecraft:blast_protection", "minecraft:fire_protection", "minecraft:projectile_protection", "minecraft:feather_falling", "minecraft:fortune", "minecraft:looting", "minecraft:silk_touch", "minecraft:luck_of_the_sea", "minecraft:efficiency", "minecraft:quick_charge", "minecraft:lure", "minecraft:respiration", "minecraft:aqua_affinity", "minecraft:soul_speed", "minecraft:swift_sneak", "minecraft:depth_strider", "minecraft:thorns", "minecraft:loyalty", "minecraft:unbreaking", "minecraft:infinity", "minecraft:mending"]
+# expecting enchantment in format, "minecraft:name"
+# see bookshelf inspectors, evaluate/process_display/spawn/components_to_list
+
+for enchantment in enchantments:
+ pools.append(
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:item",
+ "name": "minecraft:paper",
+ "functions": [
+ {
+ "function": "minecraft:set_components",
+ "components": {
+ "minecraft:custom_model_data": "item/enchanted_page"
+ }
+ },
+ {
+ "function": "minecraft:set_custom_data",
+ "tag": "{gm4_book_binders:{item:\"enchanted_page\"}}"
+ },
+ {
+ "function": "minecraft:set_name",
+ "entity": "this",
+ "target": "custom_name",
+ "name": {
+ "translate": "item.gm4.enchanted_page",
+ "fallback": "Enchanted Page",
+ "italic": false
+ }
+ },
+ {
+ "function": "minecraft:set_enchantments",
+ "enchantments": {
+ f"{enchantment}": {
+ "type": "minecraft:storage",
+ "storage": "gm4_book_binders:temp",
+ "path": f"stored_enchantments.\"{enchantment}\""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "conditions": [
+ {
+ "condition": "minecraft:value_check",
+ "value": {
+ "type": "minecraft:storage",
+ "storage": "gm4_book_binders:temp",
+ "path": f"stored_enchantments.\"{enchantment}\""
+ },
+ "range": {
+ "min": 1,
+ "max": 255
+ }
+ }
+ ]
+ }
+ )
+
+{
+ "pools": pools
+}
diff --git a/gm4_book_binders/beet.yaml b/gm4_book_binders/beet.yaml
index 1e9f3f0ebd..e70d09f89d 100644
--- a/gm4_book_binders/beet.yaml
+++ b/gm4_book_binders/beet.yaml
@@ -4,6 +4,13 @@ version: 1.5.X
data_pack:
load: .
+ overlays:
+ - formats:
+ min_inclusive: 1
+ max_inclusive: 88
+ min_format: 1
+ max_format: 88
+ directory: backport_88
require:
- bolt
diff --git a/gm4_book_binders/data/gm4_book_binders/loot_table/debind_book.json b/gm4_book_binders/data/gm4_book_binders/loot_table/debind_book.json
index fc753909cd..49ef186292 100644
--- a/gm4_book_binders/data/gm4_book_binders/loot_table/debind_book.json
+++ b/gm4_book_binders/data/gm4_book_binders/loot_table/debind_book.json
@@ -1,5 +1,5 @@
pools = []
-enchantments = ["minecraft:binding_curse", "minecraft:vanishing_curse", "minecraft:riptide", "minecraft:channeling", "minecraft:wind_burst", "minecraft:frost_walker", "minecraft:sharpness", "minecraft:smite", "minecraft:bane_of_arthropods", "minecraft:impaling", "minecraft:power", "minecraft:density", "minecraft:breach", "minecraft:piercing", "minecraft:sweeping_edge", "minecraft:multishot", "minecraft:fire_aspect", "minecraft:flame", "minecraft:knockback", "minecraft:punch", "minecraft:protection", "minecraft:blast_protection", "minecraft:fire_protection", "minecraft:projectile_protection", "minecraft:feather_falling", "minecraft:fortune", "minecraft:looting", "minecraft:silk_touch", "minecraft:luck_of_the_sea", "minecraft:efficiency", "minecraft:quick_charge", "minecraft:lure", "minecraft:respiration", "minecraft:aqua_affinity", "minecraft:soul_speed", "minecraft:swift_sneak", "minecraft:depth_strider", "minecraft:thorns", "minecraft:loyalty", "minecraft:unbreaking", "minecraft:infinity", "minecraft:mending"]
+enchantments = ["minecraft:binding_curse", "minecraft:vanishing_curse", "minecraft:riptide", "minecraft:channeling", "minecraft:wind_burst", "minecraft:frost_walker", "minecraft:sharpness", "minecraft:smite", "minecraft:bane_of_arthropods", "minecraft:impaling", "minecraft:power", "minecraft:density", "minecraft:breach", "minecraft:piercing", "minecraft:sweeping_edge", "minecraft:multishot", "minecraft:fire_aspect", "minecraft:flame", "minecraft:knockback", "minecraft:punch", "minecraft:protection", "minecraft:blast_protection", "minecraft:fire_protection", "minecraft:projectile_protection", "minecraft:feather_falling", "minecraft:fortune", "minecraft:looting", "minecraft:silk_touch", "minecraft:luck_of_the_sea", "minecraft:efficiency", "minecraft:quick_charge", "minecraft:lure", "minecraft:respiration", "minecraft:aqua_affinity", "minecraft:soul_speed", "minecraft:swift_sneak", "minecraft:depth_strider", "minecraft:thorns", "minecraft:loyalty", "minecraft:unbreaking", "minecraft:infinity", "minecraft:mending", "minecraft:lunge"]
# expecting enchantment in format, "minecraft:name"
# see bookshelf inspectors, evaluate/process_display/spawn/components_to_list
diff --git a/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/function/process_display/spawn/components_to_list.mcfunction b/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/function/process_display/spawn/components_to_list.mcfunction
index 67a9454705..e5d55a758e 100644
--- a/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/function/process_display/spawn/components_to_list.mcfunction
+++ b/gm4_bookshelf_inspector/data/gm4_bookshelf_inspector/function/process_display/spawn/components_to_list.mcfunction
@@ -40,6 +40,7 @@ ALL_ENCHANTMENTS = [
"luck_of_the_sea",
"efficiency",
"quick_charge",
+ "lunge",
"lure",
"respiration",
"aqua_affinity",
diff --git a/gm4_cooler_caves/beet.yaml b/gm4_cooler_caves/beet.yaml
index a5241832cd..94a37a1a7f 100644
--- a/gm4_cooler_caves/beet.yaml
+++ b/gm4_cooler_caves/beet.yaml
@@ -15,6 +15,7 @@ data_pack:
pipeline:
- gm4.plugins.extend.module
- gm4.plugins.include.pfb_biome_extensions
+ - gm4_cooler_caves.fix_overlays
meta:
gm4:
diff --git a/gm4_cooler_caves/fix_overlays.py b/gm4_cooler_caves/fix_overlays.py
new file mode 100644
index 0000000000..edc60325fa
--- /dev/null
+++ b/gm4_cooler_caves/fix_overlays.py
@@ -0,0 +1,8 @@
+from beet import Context
+
+# Due to a bug in beet, we need to manually set the overlay formats
+def beet_default(ctx: Context):
+ overlay = ctx.data.overlays["backport_88"]
+ overlay.min_format = 1
+ overlay.max_format = 88
+ overlay.supported_formats = {"min_inclusive": 1, "max_inclusive": 88}
diff --git a/gm4_disassemblers/beet.yaml b/gm4_disassemblers/beet.yaml
index 95e6b309d8..5e8d523ced 100644
--- a/gm4_disassemblers/beet.yaml
+++ b/gm4_disassemblers/beet.yaml
@@ -7,10 +7,16 @@ data_pack:
overlays:
- formats:
min_inclusive: 88
- max_inclusive: 88
+ max_inclusive: 94
min_format: 88
- max_format: 88
+ max_format: 94
directory: since_88
+ - formats:
+ min_inclusive: 94
+ max_inclusive: 94
+ min_format: 94
+ max_format: 94
+ directory: since_94
- formats:
min_inclusive: 81
max_inclusive: 88
diff --git a/gm4_disassemblers/data/gm4_disassemblers/function/check_item.mcfunction b/gm4_disassemblers/data/gm4_disassemblers/function/check_item.mcfunction
index e00b82e3eb..792df9d183 100644
--- a/gm4_disassemblers/data/gm4_disassemblers/function/check_item.mcfunction
+++ b/gm4_disassemblers/data/gm4_disassemblers/function/check_item.mcfunction
@@ -1,10 +1,12 @@
# processes each item
# @s = armor stand display (we need the hand) [tag=gm4_disassembler_stand]
# located at the disassembler block
-# run from extract
+# run from process
+
data modify entity @s equipment.mainhand set from storage gm4_disassemblers:temp Items[0]
execute store result score $damage gm4_disassembler run data get storage gm4_disassemblers:temp Items[0].components."minecraft:damage"
scoreboard players set $dropped gm4_disassembler 0
function #gm4_disassemblers:before_base
execute if score $dropped gm4_disassembler matches 0 run function #gm4_disassemblers:during_base
execute if score $dropped gm4_disassembler matches 0 run function #gm4_disassemblers:after_base
+item replace entity @s weapon.mainhand with minecraft:air
diff --git a/gm4_disassemblers/generate_disassembly.py b/gm4_disassemblers/generate_disassembly.py
index 9bf5781d7e..f12b9a2044 100644
--- a/gm4_disassemblers/generate_disassembly.py
+++ b/gm4_disassemblers/generate_disassembly.py
@@ -4,6 +4,7 @@
from typing import Any
ITEMS = {
+ "copper_spear": 191,
"copper_sword": 191,
"copper_pickaxe": 191,
"copper_axe": 191,
@@ -14,6 +15,7 @@
"copper_leggings": 166,
"copper_boots": 144,
+ "diamond_spear": 1562,
"diamond_sword": 1562,
"diamond_pickaxe": 1562,
"diamond_axe": 1562,
@@ -24,6 +26,7 @@
"diamond_leggings": 496,
"diamond_boots": 430,
+ "iron_spear": 251,
"iron_sword": 251,
"iron_pickaxe": 251,
"iron_axe": 251,
@@ -34,6 +37,7 @@
"iron_leggings": 226,
"iron_boots": 196,
+ "golden_spear": 33,
"golden_sword": 33,
"golden_pickaxe": 33,
"golden_axe": 33,
@@ -62,11 +66,11 @@
def beet_default(ctx: Context):
"""Creates a loot table for dropping the 9 result items when disassembling an item."""
vanilla = ctx.inject(Vanilla)
- vanilla.minecraft_version = '1.21.9'
+ vanilla.minecraft_version = '1.21.11'
recipes = vanilla.data.recipes
for item, durability in ITEMS.items():
- output_pack = ctx.data.overlays["since_88"] if "copper" in item else ctx.data
+ output_pack = ctx.data.overlays["since_94"] if "spear" in item else (ctx.data.overlays["since_88"] if "copper" in item else ctx.data)
recipe = recipes[f"minecraft:{item}"].data
ingredients: list[tuple[str, int]] = []
@@ -148,7 +152,7 @@ def beet_default(ctx: Context):
}]
}
for item in ITEMS:
- if "copper" in item:
+ if "spear" in item or "copper" in item:
continue
caller["pools"][0]["entries"][0]["children"].append({
"type": "minecraft:loot_table",
@@ -179,6 +183,8 @@ def beet_default(ctx: Context):
}]
}
for item in ITEMS:
+ if "spear" in item:
+ continue
caller_88["pools"][0]["entries"][0]["children"].append({
"type": "minecraft:loot_table",
"value": f'gm4_disassemblers:disassembleables/{item}',
@@ -195,5 +201,32 @@ def beet_default(ctx: Context):
"range": 1,
"value": {"type":"score","target":{"type":"fixed","name":"disassemble_diamonds"},"score":"gm4_disassembler"}
})
-
ctx.data.overlays["since_88"][f"{ctx.project_id}:caller"] = LootTable(caller_88)
+
+ # since 94 overlay
+ caller_94: dict[str, Any] = {
+ "__comment": "Generated by generate_disassembly.py",
+ "type": "minecraft:fishing",
+ "pools": [{
+ "rolls": 1,
+ "entries": [{"type":"minecraft:alternatives","children":[]}]
+ }]
+ }
+ for item in ITEMS:
+ caller_94["pools"][0]["entries"][0]["children"].append({
+ "type": "minecraft:loot_table",
+ "value": f'gm4_disassemblers:disassembleables/{item}',
+ "conditions": [{
+ "condition": "match_tool",
+ "predicate": {
+ "items": [f"minecraft:{item}"]
+ }
+ }]
+ })
+ if item.startswith("diamond_"):
+ caller_94["pools"][0]["entries"][0]["children"][-1]["conditions"].append({
+ "condition": "value_check",
+ "range": 1,
+ "value": {"type":"score","target":{"type":"fixed","name":"disassemble_diamonds"},"score":"gm4_disassembler"}
+ })
+ ctx.data.overlays["since_94"][f"{ctx.project_id}:caller"] = LootTable(caller_94)
diff --git a/gm4_enchantment_extractors/beet.yaml b/gm4_enchantment_extractors/beet.yaml
index ff24f1e479..3be312da44 100644
--- a/gm4_enchantment_extractors/beet.yaml
+++ b/gm4_enchantment_extractors/beet.yaml
@@ -4,6 +4,13 @@ version: 2.5.X
data_pack:
load: .
+ overlays:
+ - formats:
+ min_inclusive: 94
+ max_inclusive: 94
+ min_format: 94
+ max_format: 94
+ directory: since_94
resource_pack:
load: .
diff --git a/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/check.json b/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/check.json
new file mode 100644
index 0000000000..a7418868a6
--- /dev/null
+++ b/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/check.json
@@ -0,0 +1,971 @@
+{
+ "type": "minecraft:generic",
+ "pools": [
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/protection",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:protection"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/fire_protection",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:fire_protection"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/blast_protection",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:blast_protection"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/projectile_protection",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:projectile_protection"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/feather_falling",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:feather_falling"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/respiration",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:respiration"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/aqua_affinity",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:aqua_affinity"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/thorns",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:thorns"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/depth_strider",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:depth_strider"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/frost_walker",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:frost_walker"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/soul_speed",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:soul_speed"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/binding_curse",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:binding_curse"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/sharpness",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:sharpness"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/smite",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:smite"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/bane_of_arthropods",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:bane_of_arthropods"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/knockback",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:knockback"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/fire_aspect",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:fire_aspect"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/looting",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:looting"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/sweeping",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:sweeping_edge"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/efficiency",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:efficiency"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/silk_touch",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:silk_touch"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/fortune",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:fortune"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/power",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:power"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/punch",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:punch"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/flame",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:flame"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/infinity",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:infinity"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/luck_of_the_sea",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:luck_of_the_sea"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/lure",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:lure"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/impaling",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:impaling"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/riptide",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:riptide"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/loyalty",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:loyalty"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/channeling",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:channeling"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/piercing",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:piercing"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/multishot",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:multishot"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/quick_charge",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:quick_charge"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/breach",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:breach"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/density",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:density"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/wind_burst",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:wind_burst"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/unbreaking",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:unbreaking"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/vanishing_curse",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:vanishing_curse"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/mending",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:mending"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:loot_table",
+ "value": "gm4_enchantment_extractors:technical/extract/lunge",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:lunge"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/lunge.json b/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/lunge.json
new file mode 100644
index 0000000000..a5578a09ce
--- /dev/null
+++ b/gm4_enchantment_extractors/since_94/data/gm4_enchantment_extractors/loot_table/technical/extract/lunge.json
@@ -0,0 +1,114 @@
+{
+ "type": "minecraft:generic",
+ "pools": [
+ {
+ "rolls": 1,
+ "entries": [
+ {
+ "type": "minecraft:alternatives",
+ "children": [
+ {
+ "type": "minecraft:item",
+ "name": "minecraft:enchanted_book",
+ "functions": [
+ {
+ "function": "minecraft:set_components",
+ "components": {
+ "minecraft:stored_enchantments": {
+ "minecraft:lunge": 3
+ }
+ }
+ }
+ ],
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:lunge",
+ "levels": 3
+ }
+ ]
+ }
+ }
+ },
+ {
+ "condition": "minecraft:random_chance",
+ "chance": 0.1
+ }
+ ]
+ },
+ {
+ "type": "minecraft:item",
+ "name": "minecraft:enchanted_book",
+ "functions": [
+ {
+ "function": "minecraft:set_components",
+ "components": {
+ "minecraft:stored_enchantments": {
+ "minecraft:lunge": 2
+ }
+ }
+ }
+ ],
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:lunge",
+ "levels": 2
+ }
+ ]
+ }
+ }
+ },
+ {
+ "condition": "minecraft:random_chance",
+ "chance": 0.3
+ }
+ ]
+ },
+ {
+ "type": "minecraft:item",
+ "name": "minecraft:enchanted_book",
+ "functions": [
+ {
+ "function": "minecraft:set_components",
+ "components": {
+ "minecraft:stored_enchantments": {
+ "minecraft:lunge": 1
+ }
+ }
+ }
+ ],
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:lunge",
+ "levels": 1
+ }
+ ]
+ }
+ }
+ },
+ {
+ "condition": "minecraft:random_chance",
+ "chance": 0.8
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/gm4_everstone/data/gm4_everstone/tags/entity_type/affected.json b/gm4_everstone/data/gm4_everstone/tags/entity_type/affected.json
index c65b37e1b1..9011cdb62a 100644
--- a/gm4_everstone/data/gm4_everstone/tags/entity_type/affected.json
+++ b/gm4_everstone/data/gm4_everstone/tags/entity_type/affected.json
@@ -15,6 +15,7 @@
"minecraft:llama",
"minecraft:mooshroom",
"minecraft:mule",
+ {"id": "minecraft:nautilus", "required": false},
"minecraft:ocelot",
"minecraft:panda",
"minecraft:pig",
diff --git a/gm4_guidebook/data/gm4_guidebook/function/init.mcfunction b/gm4_guidebook/data/gm4_guidebook/function/init.mcfunction
index 210f0f2f03..e5fc8236d7 100644
--- a/gm4_guidebook/data/gm4_guidebook/function/init.mcfunction
+++ b/gm4_guidebook/data/gm4_guidebook/function/init.mcfunction
@@ -7,7 +7,7 @@ scoreboard objectives add gm4_guide_pages dummy
scoreboard objectives add gm4_guide_section dummy
scoreboard objectives add gm4_guide_config dummy
-execute unless score $sendCommandFeedback gm4_guide_config = $sendCommandFeedback gm4_guide_config store result score $sendCommandFeedback gm4_guide_config run gamerule sendCommandFeedback
+execute unless score $sendCommandFeedback gm4_guide_config = $sendCommandFeedback gm4_guide_config store result score $sendCommandFeedback gm4_guide_config run gamerule send_command_feedback
execute unless score $forceCommandFeedback gm4_guide_config = $forceCommandFeedback gm4_guide_config run scoreboard players set $forceCommandFeedback gm4_guide_config 0
execute unless score $giveNewPlayers gm4_guide_config = $giveNewPlayers gm4_guide_config run scoreboard players set $giveNewPlayers gm4_guide_config 1
scoreboard players set #100 gm4_guide 100
diff --git a/gm4_guidebook/data/gm4_guidebook/function/tick.mcfunction b/gm4_guidebook/data/gm4_guidebook/function/tick.mcfunction
index af3db14a33..f74afd9a11 100644
--- a/gm4_guidebook/data/gm4_guidebook/function/tick.mcfunction
+++ b/gm4_guidebook/data/gm4_guidebook/function/tick.mcfunction
@@ -1,8 +1,8 @@
schedule function gm4_guidebook:tick 1t
-# if a player is holding the guidebook, turn off sendCommandFeedback
-execute if score $sendCommandFeedback gm4_guide_config matches 1 run gamerule sendCommandFeedback true
-execute if score $forceCommandFeedback gm4_guide_config matches 0 if entity @a[predicate=gm4_guidebook:holding_book,limit=1] run gamerule sendCommandFeedback false
+# if a player is holding the guidebook, turn off minecraft:send_command_feedback
+execute if score $sendCommandFeedback gm4_guide_config matches 1 run gamerule send_command_feedback true
+execute if score $forceCommandFeedback gm4_guide_config matches 0 if entity @a[predicate=gm4_guidebook:holding_book,limit=1] run gamerule send_command_feedback false
# jump to prev section
execute as @a[scores={gm4_guide_prev=1..}] run function gm4_guidebook:hand/prev_section/search
diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/item_modifier/brew_lightning.json b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/item_modifier/brew_lightning.json
index f75d05c186..ed623f6326 100644
--- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/item_modifier/brew_lightning.json
+++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/item_modifier/brew_lightning.json
@@ -12,6 +12,10 @@
"modifier": {
"function": "minecraft:reference",
"name": "gm4_lightning_in_a_bottle:lingering_bottle_of_lightning"
+ },
+ "on_pass": {
+ "function": "minecraft:reference",
+ "name": "gm4_lightning_in_a_bottle:lingering_bottle_of_lightning"
}
},
{
@@ -27,6 +31,10 @@
"modifier": {
"function": "minecraft:reference",
"name": "gm4_lightning_in_a_bottle:splash_bottle_of_lightning"
+ },
+ "on_pass": {
+ "function": "minecraft:reference",
+ "name": "gm4_lightning_in_a_bottle:splash_bottle_of_lightning"
}
},
{
@@ -42,6 +50,10 @@
"modifier": {
"function": "minecraft:reference",
"name": "gm4_lightning_in_a_bottle:bottle_of_lightning"
+ },
+ "on_pass": {
+ "function": "minecraft:reference",
+ "name": "gm4_lightning_in_a_bottle:bottle_of_lightning"
}
}
]
diff --git a/gm4_metallurgy/data/gm4/tags/entity_type/undead.json b/gm4_metallurgy/data/gm4/tags/entity_type/undead.json
index e567b81388..eaae205e89 100644
--- a/gm4_metallurgy/data/gm4/tags/entity_type/undead.json
+++ b/gm4_metallurgy/data/gm4/tags/entity_type/undead.json
@@ -1,8 +1,10 @@
{
"values": [
"minecraft:bogged",
+ {"id": "minecraft:camel_husk", "required": false},
"minecraft:drowned",
"minecraft:husk",
+ {"id": "minecraft:parched", "required": false},
"minecraft:phantom",
"minecraft:skeleton",
"minecraft:skeleton_horse",
@@ -13,6 +15,7 @@
"minecraft:zombie",
"minecraft:zombie_horse",
"minecraft:zombie_villager",
+ {"id": "minecraft:zombie_nautilus", "required": false},
"minecraft:zombified_piglin"
]
}
diff --git a/gm4_metallurgy/data/gm4_ender_bolt_shamir/tags/entity_type/pets.json b/gm4_metallurgy/data/gm4_ender_bolt_shamir/tags/entity_type/pets.json
index 3d75e428d6..31eb53c90f 100644
--- a/gm4_metallurgy/data/gm4_ender_bolt_shamir/tags/entity_type/pets.json
+++ b/gm4_metallurgy/data/gm4_ender_bolt_shamir/tags/entity_type/pets.json
@@ -1,14 +1,15 @@
{
"values": [
- "minecraft:horse",
- "minecraft:mule",
- "minecraft:donkey",
"minecraft:cat",
- "minecraft:wolf",
+ "minecraft:donkey",
+ "minecraft:horse",
"minecraft:llama",
+ "minecraft:mule",
+ {"id": "minecraft:nautilus", "required": false},
"minecraft:parrot",
- "minecraft:zombie_horse",
"minecraft:skeleton_horse",
- "minecraft:trader_llama"
+ "minecraft:trader_llama",
+ "minecraft:wolf",
+ "minecraft:zombie_horse"
]
}
diff --git a/gm4_mob_curing/data/gm4_mob_curing/function/potion_cleric/register_trades.mcfunction b/gm4_mob_curing/data/gm4_mob_curing/function/potion_cleric/register_trades.mcfunction
index b862579911..9c942bd570 100644
--- a/gm4_mob_curing/data/gm4_mob_curing/function/potion_cleric/register_trades.mcfunction
+++ b/gm4_mob_curing/data/gm4_mob_curing/function/potion_cleric/register_trades.mcfunction
@@ -5,41 +5,41 @@
data remove entity @s Offers.Recipes
# trade for slot 1 (nether wart for 4-7 emeralds)
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_0_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:8b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_0_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:8b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_0_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/trade_1
# trade for slot 2 (gunpowder for 3-5 emeralds)
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_1_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:8b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_1_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:8b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_1_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/trade_2
# trade for slot 3
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_2_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_2_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_2_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 4
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_3_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_3_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_3_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 5
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_4_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_4_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_4_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 6
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_5_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_5_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_5_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 7
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_6_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_6_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_6_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 8
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_7_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_7_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_7_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 9
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_8_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_8_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_8_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
# trade for slot 10
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_9_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_mob_curing_trade_9_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:9999999,rewardXp:24b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_mob_curing_trade_9_option] horse.0 loot gm4_mob_curing:technical/potion_cleric/all_trades
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/init.mcfunction b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/init.mcfunction
index 05f3666024..042db8c107 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/init.mcfunction
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/init.mcfunction
@@ -19,11 +19,11 @@ scoreboard objectives add gm4_sr_arrow.fire_delay dummy
execute unless score $spawn_phantoms gm4_mu_config matches -2147483648..2147483647 run scoreboard players set $spawn_phantoms gm4_mu_config 1
# disable natural phantom spawning
-execute unless score $phantoms_disabled gm4_mu_data matches 1 run gamerule doInsomnia false
-execute unless score $phantoms_disabled gm4_mu_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:{"text":"[INFO] Monsters Unbound changed gamerule doInsomnia to false"}}
+execute unless score $phantoms_disabled gm4_mu_data matches 1 run gamerule spawn_phantoms false
+execute unless score $phantoms_disabled gm4_mu_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:{"text":"[INFO] Monsters Unbound changed gamerule spawn_phantoms to false"}}
scoreboard players set $phantoms_disabled gm4_mu_data 1
-execute store result score $doinsomnia gm4_mu_data run gamerule doInsomnia
-execute if score $spawn_phantoms gm4_mu_config matches 1 if score $doinsomnia gm4_mu_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:[{"text":"[WARN]","color":"red"},{"text":" Monsters Unbound requires doInsomnia to be false, but it is true. ","color":"white"},{"text":"click here to fix","color":"red","clickEvent":{"action":"suggest_command","value":"/gamerule doInsomnia false"}}]}
+execute store result score $doinsomnia gm4_mu_data run gamerule spawn_phantoms
+execute if score $spawn_phantoms gm4_mu_config matches 1 if score $doinsomnia gm4_mu_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:[{"text":"[WARN]","color":"red"},{"text":" Monsters Unbound requires minecraft:spawn_phantoms to be false, but it is true. ","color":"white"},{"text":"click here to fix","color":"red","clickEvent":{"action":"suggest_command","value":"/gamerule spawn_phantoms false"}}]}
# mob caps
execute unless score $mob_limit.husk_army gm4_mu_config matches -2147483648..2147483647 run scoreboard players set $mob_limit.husk_army gm4_mu_config 128
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/init/mob_type/zombie/underground/replace_with_skeleton.mcfunction b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/init/mob_type/zombie/underground/replace_with_skeleton.mcfunction
index 2b04e80889..07610d44cf 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/init/mob_type/zombie/underground/replace_with_skeleton.mcfunction
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/init/mob_type/zombie/underground/replace_with_skeleton.mcfunction
@@ -4,8 +4,8 @@
# run from mob/init/mob_type/zombie/underground/pick
# gm4_sr_melee_skeleton tag is to avoid survival_refightalized treating this skeleton as holding a bow
-summon skeleton ~.05 ~ ~ {Tags:["gm4_sr_extra_mob","gm4_sr_melee_skeleton"],HandItems:[{},{}]}
-summon skeleton ~ ~ ~ {Tags:["gm4_sr_extra_mob","gm4_sr_melee_skeleton"],HandItems:[{},{}]}
+summon skeleton ~.05 ~ ~ {Tags:["gm4_sr_extra_mob","gm4_sr_melee_skeleton"],equipment:{}}
+summon skeleton ~ ~ ~ {Tags:["gm4_sr_extra_mob","gm4_sr_melee_skeleton"],equipment:{}}
tp @s ~ ~-2050 ~
kill @s
scoreboard players set $mob_extras gm4_sr_data 1
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/blazing/flare_damage.mcfunction b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/blazing/flare_damage.mcfunction
index 9ecce0cf5f..97219cd9df 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/blazing/flare_damage.mcfunction
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/blazing/flare_damage.mcfunction
@@ -3,10 +3,10 @@
# at near @s
# run from mob/process/elite/blazing/flare_explode
-execute store result score $showDeathMessages gm4_mu_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $showDeathMessages gm4_mu_data run gamerule show_death_messages
+gamerule show_death_messages false
damage @s 5 explosion
tag @s add gm4_mu_self
execute if score $showDeathMessages gm4_mu_data matches 1 at @s unless entity @e[type=player,tag=gm4_mu_self,distance=..0.1,limit=1] run tellraw @a ["",{"translate":"text.gm4.monsters_unbound.death.blazing_elite_flare","fallback":"%s was blown up by a Blazing Flare",with:[{"selector":"@s"}]}]
tag @s remove gm4_mu_self
-execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule showDeathMessages true
+execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule show_death_messages true
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/pearlescent/laser_damage.mcfunction b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/pearlescent/laser_damage.mcfunction
index 6c12498e2c..db4d174711 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/pearlescent/laser_damage.mcfunction
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/pearlescent/laser_damage.mcfunction
@@ -6,10 +6,10 @@
scoreboard players set $attack_hit gm4_mu_data 1
scoreboard players set $laser_limit gm4_mu_data 0
-execute store result score $showDeathMessages gm4_mu_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $showDeathMessages gm4_mu_data run gamerule show_death_messages
+gamerule show_death_messages false
damage @s 1.0 in_fire
tag @s add gm4_mu_self
execute if score $showDeathMessages gm4_mu_data matches 1 at @s unless entity @e[type=player,tag=gm4_mu_self,distance=..0.1,limit=1] run tellraw @a ["",{"translate":"text.gm4.monsters_unbound.death.pearlescent_elite_laser","fallback":"%s was seen by %s",with:[{"selector":"@s"},{"selector":"@e[type=#gm4_monsters_unbound:elite_types,tag=gm4_mu_elite.pearlescent,distance=..32,limit=1]"}]}]
tag @s remove gm4_mu_self
-execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule showDeathMessages true
+execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule show_death_messages true
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/volatile/pillar_damage.mcfunction b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/volatile/pillar_damage.mcfunction
index 15f3e5a29d..302ba833c2 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/volatile/pillar_damage.mcfunction
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/function/mob/process/elite/volatile/pillar_damage.mcfunction
@@ -6,10 +6,10 @@
effect give @s slowness 2 2
effect give @s nausea 4 0
-execute store result score $showDeathMessages gm4_mu_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $showDeathMessages gm4_mu_data run gamerule show_death_messages
+gamerule show_death_messages false
damage @s 9.0 explosion
tag @s add gm4_mu_self
execute if score $showDeathMessages gm4_mu_data matches 1 at @s unless entity @e[type=player,tag=gm4_mu_self,distance=..0.1,limit=1] run tellraw @a ["",{"translate":"text.gm4.monsters_unbound.death.volatile_elite_meteorite","fallback":"%s was struck by a meteorite",with:[{"selector":"@s"}]}]
tag @s remove gm4_mu_self
-execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule showDeathMessages true
+execute if score $showDeathMessages gm4_mu_data matches 1 run gamerule show_death_messages true
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/modify.json b/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/modify.json
index 9ec8e2d3ca..79d0c5d5ca 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/modify.json
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/modify.json
@@ -6,6 +6,7 @@
"minecraft:drowned",
"minecraft:enderman",
"minecraft:husk",
+ {"id": "minecraft:parched", "required": false},
"minecraft:phantom",
"minecraft:piglin",
"minecraft:silverfish",
diff --git a/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/skeleton_types.json b/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/skeleton_types.json
index 0dbca73205..c6134d6b8e 100644
--- a/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/skeleton_types.json
+++ b/gm4_monsters_unbound/data/gm4_monsters_unbound/tags/entity_type/skeleton_types.json
@@ -1,6 +1,7 @@
{
"values": [
"minecraft:bogged",
+ {"id": "minecraft:parched", "required": false},
"minecraft:skeleton",
"minecraft:stray",
"minecraft:wither_skeleton"
diff --git a/gm4_mysterious_midnights/data/gm4_harvest_moons/function/dawn_event.mcfunction b/gm4_mysterious_midnights/data/gm4_harvest_moons/function/dawn_event.mcfunction
index 5d99c4d36b..bd6f2917fc 100644
--- a/gm4_mysterious_midnights/data/gm4_harvest_moons/function/dawn_event.mcfunction
+++ b/gm4_mysterious_midnights/data/gm4_harvest_moons/function/dawn_event.mcfunction
@@ -2,5 +2,5 @@
#at world spawn
#called by mysterious midnights base upon the break of dawn. Only runs once.
-gamerule randomTickSpeed 3
+gamerule random_tick_speed 3
scoreboard players reset started_harvest_moon gm4_mm_data
diff --git a/gm4_mysterious_midnights/data/gm4_harvest_moons/function/event.mcfunction b/gm4_mysterious_midnights/data/gm4_harvest_moons/function/event.mcfunction
index 43c37b0d36..3573e71eb7 100644
--- a/gm4_mysterious_midnights/data/gm4_harvest_moons/function/event.mcfunction
+++ b/gm4_mysterious_midnights/data/gm4_harvest_moons/function/event.mcfunction
@@ -2,5 +2,5 @@
#at world spawn
#called by mysterious midnights base if this expansion was selected. pulsed every 0.8 seconds throughout the night.
-execute unless score started_harvest_moon gm4_mm_data matches 1 run gamerule randomTickSpeed 60
+execute unless score started_harvest_moon gm4_mm_data matches 1 run gamerule random_tick_speed 60
execute unless score started_harvest_moon gm4_mm_data matches 1 run scoreboard players set started_harvest_moon gm4_mm_data 1
diff --git a/gm4_orb_of_ankou/data/gm4/tags/entity_type/undead.json b/gm4_orb_of_ankou/data/gm4/tags/entity_type/undead.json
index e567b81388..eaae205e89 100644
--- a/gm4_orb_of_ankou/data/gm4/tags/entity_type/undead.json
+++ b/gm4_orb_of_ankou/data/gm4/tags/entity_type/undead.json
@@ -1,8 +1,10 @@
{
"values": [
"minecraft:bogged",
+ {"id": "minecraft:camel_husk", "required": false},
"minecraft:drowned",
"minecraft:husk",
+ {"id": "minecraft:parched", "required": false},
"minecraft:phantom",
"minecraft:skeleton",
"minecraft:skeleton_horse",
@@ -13,6 +15,7 @@
"minecraft:zombie",
"minecraft:zombie_horse",
"minecraft:zombie_villager",
+ {"id": "minecraft:zombie_nautilus", "required": false},
"minecraft:zombified_piglin"
]
}
diff --git a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/function/pneumas/shrieking/player_death.mcfunction b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/function/pneumas/shrieking/player_death.mcfunction
index 36035b667c..9987a35f7e 100644
--- a/gm4_orb_of_ankou/data/gm4_orb_of_ankou/function/pneumas/shrieking/player_death.mcfunction
+++ b/gm4_orb_of_ankou/data/gm4_orb_of_ankou/function/pneumas/shrieking/player_death.mcfunction
@@ -1,9 +1,9 @@
# @s = player who died from a sonic boom
# run from pneumas/shrieking/boom_player
-execute store result score $show_death_messages gm4_pneuma_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $show_death_messages gm4_pneuma_data run gamerule show_death_messages
+gamerule show_death_messages false
tellraw @a {"translate":"death.attack.sonic_boom","with":[{"selector":"@s"}]}
kill @s
-execute if score $show_death_messages gm4_pneuma_data matches 1 run gamerule showDeathMessages true
+execute if score $show_death_messages gm4_pneuma_data matches 1 run gamerule show_death_messages true
scoreboard players reset $show_death_messages gm4_pneuma_data
diff --git a/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/function/main.mcfunction b/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/function/main.mcfunction
index eb1a6d0674..1ffe8ed43e 100644
--- a/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/function/main.mcfunction
+++ b/gm4_podzol_rooting_soil/data/gm4_podzol_rooting_soil/function/main.mcfunction
@@ -2,7 +2,7 @@
schedule function gm4_podzol_rooting_soil:main 400t
# query random tick speed
-execute store result score random_tick_speed gm4_podzol_data run gamerule randomTickSpeed
+execute store result score random_tick_speed gm4_podzol_data run gamerule random_tick_speed
# prepare lööp
scoreboard players add last_uuid gm4_podzol_data 11
diff --git a/gm4_reeling_rods/backport_88/data/gm4_reeling_rods/function/reeling/bee.mcfunction b/gm4_reeling_rods/backport_88/data/gm4_reeling_rods/function/reeling/bee.mcfunction
new file mode 100644
index 0000000000..7f714d28ac
--- /dev/null
+++ b/gm4_reeling_rods/backport_88/data/gm4_reeling_rods/function/reeling/bee.mcfunction
@@ -0,0 +1,16 @@
+# Action for reeled bee
+# @s = bee
+# at bobber in @s
+# run from hooked_entity/select_type
+
+# fail if no nectar
+execute unless data entity @s {HasNectar:1b} run return fail
+
+# Steal
+data modify storage gm4_reeling_rods:temp item_data set value {}
+data merge entity @s {HasNectar:0b,AngerTime:300}
+data modify entity @s AngryAt set from entity @p[tag=gm4_reeling_rods.player] UUID
+data modify storage gm4_reeling_rods:temp item_data.Item set value {id:"minecraft:honeycomb",count:1}
+function gm4_reeling_rods:pull_items
+
+playsound entity.bee.hurt neutral @a[distance=..16] ~ ~ ~
diff --git a/gm4_reeling_rods/beet.yaml b/gm4_reeling_rods/beet.yaml
index 96667844bf..743d17a689 100644
--- a/gm4_reeling_rods/beet.yaml
+++ b/gm4_reeling_rods/beet.yaml
@@ -4,6 +4,13 @@ version: 1.0.X
data_pack:
load: .
+ overlays:
+ - formats:
+ min_inclusive: 1
+ max_inclusive: 88
+ min_format: 1
+ max_format: 88
+ directory: backport_88
pipeline:
- generate_files
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/apply.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/apply.mcfunction
index 93cb08ac48..db41e7b658 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/apply.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/apply.mcfunction
@@ -5,8 +5,8 @@
# run from hooked_entity/select_type
# immediate damage (amount scales with enchantment level)
-execute store result score $show_death_messages gm4_reeling_rods.barbed_damage_timer run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $show_death_messages gm4_reeling_rods.barbed_damage_timer run gamerule show_death_messages
+gamerule show_death_messages false
$damage @s $(damage) cactus by @p[tag=gm4_reeling_rods.player]
playsound minecraft:entity.player.attack.crit player @a[distance=..16] ~ ~ ~ 1 1.82
@@ -20,5 +20,5 @@ execute at @s if entity @e[tag=gm4_reeling_rods.victim,distance=0,limit=1] run f
# reset scores, gamerule and tag
tag @s remove gm4_reeling_rods.victim
-execute if score $show_death_messages gm4_reeling_rods.barbed_damage_timer matches 1 run gamerule showDeathMessages true
+execute if score $show_death_messages gm4_reeling_rods.barbed_damage_timer matches 1 run gamerule show_death_messages true
scoreboard players reset $show_death_messages gm4_reeling_rods.barbed_damage_timer
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/bleed.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/bleed.mcfunction
index 5f262a8af5..ebbb9313bd 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/bleed.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/barbed/bleed.mcfunction
@@ -20,8 +20,8 @@ execute unless score $phase gm4_reeling_rods.barbed_damage_timer matches 0 run r
execute summon snowball run function gm4_reeling_rods:barbed/find_attacker
# prepare to handle player death
-execute store result score $show_death_messages gm4_reeling_rods.barbed_damage_timer run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $show_death_messages gm4_reeling_rods.barbed_damage_timer run gamerule show_death_messages
+gamerule show_death_messages false
# apply damage
# | if the attacker was found, attribute it to the attacker, if not do not attribute it to anyone
@@ -38,5 +38,5 @@ execute anchored eyes run particle damage_indicator ^ ^ ^1 .5 .5 .5 0 8 normal @
tag @s add gm4_reeling_rods.victim
execute if entity @s[type=#gm4_reeling_rods:support_death_message] at @s unless entity @e[type=#gm4_reeling_rods:support_death_message,tag=gm4_reeling_rods.victim,distance=0,limit=1] run function gm4_reeling_rods:barbed/on_bleeding_death
tag @s remove gm4_reeling_rods.victim
-execute if score $show_death_messages gm4_reeling_rods.barbed_damage_timer matches 1 run gamerule showDeathMessages true
+execute if score $show_death_messages gm4_reeling_rods.barbed_damage_timer matches 1 run gamerule show_death_messages true
scoreboard players reset $show_death_messages gm4_reeling_rods.barbed_damage_timer
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/bee.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/bee.mcfunction
index 7f714d28ac..c7117f8d7e 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/bee.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/bee.mcfunction
@@ -8,8 +8,11 @@ execute unless data entity @s {HasNectar:1b} run return fail
# Steal
data modify storage gm4_reeling_rods:temp item_data set value {}
-data merge entity @s {HasNectar:0b,AngerTime:300}
-data modify entity @s AngryAt set from entity @p[tag=gm4_reeling_rods.player] UUID
+data modify entity @s HasNectar set value 0b
+data modify entity @s angry_at set from entity @p[tag=gm4_reeling_rods.player] UUID
+execute store result score $anger_end_time gm4_reeling_rods.math run time query gametime
+scoreboard players add $anger_end_time gm4_reeling_rods.math 300
+execute store result entity @s anger_end_time long 1 run scoreboard players get $anger_end_time gm4_reeling_rods.math
data modify storage gm4_reeling_rods:temp item_data.Item set value {id:"minecraft:honeycomb",count:1}
function gm4_reeling_rods:pull_items
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/horse.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_body_and_saddle.mcfunction
similarity index 61%
rename from gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/horse.mcfunction
rename to gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_body_and_saddle.mcfunction
index 049fec52ad..8bb5e52ed6 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/horse.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_body_and_saddle.mcfunction
@@ -1,8 +1,8 @@
-# Action for reeled horse
-# @s = horse
+# Action for reeled #gm4_reeling_rods:steal_body_and_saddle
+# @s = #gm4_reeling_rods:steal_body_and_saddle
# at bobber in @s
# run from hooked_entity/select_type
-# armor, then saddle
+# body, then saddle
execute unless function gm4_reeling_rods:reeling/stealable/steal_slot/body \
run function gm4_reeling_rods:reeling/stealable/steal_slot/saddle
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/body.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/body.mcfunction
index 8a8b8f8564..3f455a8d1a 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/body.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/body.mcfunction
@@ -1,7 +1,7 @@
# Steal Body
# @s = wolf, llama or horse
# at bobber in @s
-# run from hooked_entity/select_type & reeling/llama & reeling/horse
+# run from hooked_entity/select_type & reeling/llama & reeling/stealable/steal_body_and_saddle
# fails
execute unless data entity @s equipment.body run return fail
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/saddle.mcfunction b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/saddle.mcfunction
index 284f8a74ef..ca939e882a 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/saddle.mcfunction
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/function/reeling/stealable/steal_slot/saddle.mcfunction
@@ -1,7 +1,7 @@
# Steal Saddle
# @s = #gm4_reeling_rods:steal_saddle
# at bobber in @s
-# run from hooked_entity/select_type
+# run from hooked_entity/select_type and reeling/stealable/steal_body_and_saddle
# fails
execute unless data entity @s equipment.saddle run return fail
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/leashable.json b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/leashable.json
index 4b68a4729f..68f6e24b7a 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/leashable.json
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/leashable.json
@@ -9,6 +9,7 @@
"minecraft:axolotl",
"minecraft:bee",
"minecraft:camel",
+ {"id": "minecraft:camel_husk", "required": false},
"minecraft:cat",
"minecraft:chicken",
{"id": "minecraft:copper_golem", "required": false},
@@ -19,12 +20,13 @@
"minecraft:frog",
"minecraft:glow_squid",
"minecraft:goat",
- { "id": "minecraft:happy_ghast", "required": false },
+ {"id": "minecraft:happy_ghast", "required": false},
"minecraft:hoglin",
"minecraft:horse",
"minecraft:iron_golem",
"minecraft:mooshroom",
"minecraft:mule",
+ {"id": "minecraft:nautilus", "required": false},
"minecraft:ocelot",
"minecraft:parrot",
"minecraft:polar_bear",
@@ -34,6 +36,7 @@
"minecraft:snow_golem",
"minecraft:squid",
"minecraft:wolf",
- "minecraft:zoglin"
+ "minecraft:zoglin",
+ {"id": "minecraft:zombie_nautilus", "required": false}
]
}
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_body_and_saddle.json b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_body_and_saddle.json
new file mode 100644
index 0000000000..878d912402
--- /dev/null
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_body_and_saddle.json
@@ -0,0 +1,8 @@
+{
+ "values": [
+ "minecraft:horse",
+ {"id": "minecraft:nautilus", "required": false},
+ "minecraft:zombie_horse",
+ {"id": "minecraft:zombie_nautilus", "required": false}
+ ]
+}
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_equipment.json b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_equipment.json
index d834ae2f41..ccf44a32a0 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_equipment.json
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_equipment.json
@@ -5,6 +5,7 @@
"minecraft:drowned",
"minecraft:husk",
{"id": "minecraft:mannequin", "required": false},
+ {"id": "minecraft:parched", "required": false},
"minecraft:piglin",
"minecraft:piglin_brute",
"minecraft:player",
diff --git a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_saddle.json b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_saddle.json
index aef60be58a..41fc6ee697 100644
--- a/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_saddle.json
+++ b/gm4_reeling_rods/data/gm4_reeling_rods/tags/entity_type/steal_saddle.json
@@ -1,6 +1,7 @@
{
"values": [
"minecraft:camel",
+ {"id": "minecraft:camel_husk", "required": false},
"minecraft:pig",
"minecraft:skeleton_horse",
"minecraft:strider",
diff --git a/gm4_reeling_rods/entities.csv b/gm4_reeling_rods/entities.csv
index 58162aeafa..95c36c03d6 100644
--- a/gm4_reeling_rods/entities.csv
+++ b/gm4_reeling_rods/entities.csv
@@ -2,12 +2,12 @@ id,needs_reeling,can_dismount,function
#gm4_reeling_rods:chested_horse,TRUE,TRUE,"gm4_reeling_rods:reeling/chested_horse"
#gm4_reeling_rods:llamas,TRUE,TRUE,"gm4_reeling_rods:reeling/llama"
#gm4_reeling_rods:steal_body,TRUE,TRUE,"gm4_reeling_rods:reeling/stealable/steal_slot/body"
+#gm4_reeling_rods:steal_body_and_saddle,TRUE,TRUE,"gm4_reeling_rods:reeling/stealable/steal_body_and_saddle"
#gm4_reeling_rods:steal_equipment,TRUE,TRUE,"gm4_reeling_rods:reeling/stealable/steal_equipment"
#gm4_reeling_rods:steal_hand,TRUE,TRUE,"gm4_reeling_rods:reeling/stealable/steal_hand"
#gm4_reeling_rods:steal_saddle,TRUE,TRUE,"gm4_reeling_rods:reeling/stealable/steal_slot/saddle"
minecraft:bee,TRUE,TRUE,"gm4_reeling_rods:reeling/bee"
minecraft:enderman,TRUE,TRUE,"gm4_reeling_rods:reeling/enderman/action"
-minecraft:horse,TRUE,TRUE,"gm4_reeling_rods:reeling/horse"
minecraft:mooshroom,TRUE,TRUE,"gm4_reeling_rods:reeling/mooshroom"
minecraft:sheep,TRUE,TRUE,"gm4_reeling_rods:reeling/sheep"
minecraft:snow_golem,TRUE,TRUE,"gm4_reeling_rods:reeling/snow_golem"
diff --git a/gm4_shroomites/data/gm4_shroomites/function/main.mcfunction b/gm4_shroomites/data/gm4_shroomites/function/main.mcfunction
index ff28287c1a..6642d6187e 100644
--- a/gm4_shroomites/data/gm4_shroomites/function/main.mcfunction
+++ b/gm4_shroomites/data/gm4_shroomites/function/main.mcfunction
@@ -1,7 +1,7 @@
# manages a scoreboard clock system to tie the module in with the random tick speed gamerule
# manage clock speed
-execute store result score $random_tick_speed gm4_shroom_data run gamerule randomTickSpeed
+execute store result score $random_tick_speed gm4_shroom_data run gamerule random_tick_speed
scoreboard players operation $fast_clock gm4_shroom_data += $random_tick_speed gm4_shroom_data
# trigger spore movement
diff --git a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/init.mcfunction b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/init.mcfunction
index c3d1f67839..5f2ee0a19f 100644
--- a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/init.mcfunction
+++ b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/init.mcfunction
@@ -51,11 +51,11 @@ execute unless score $config_version gm4_sr_config matches 2.. run scoreboard pl
scoreboard players set $config_version gm4_sr_data 2
# swap natural regeneration to module's system
-execute unless score $natural_regen_disabled gm4_sr_data matches 1 run gamerule naturalRegeneration false
-execute unless score $natural_regen_disabled gm4_sr_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:{"text":"[INFO] Survival Refightalized changed gamerule naturalRegeneration to false"}}
+execute unless score $natural_regen_disabled gm4_sr_data matches 1 run gamerule natural_health_regeneration false
+execute unless score $natural_regen_disabled gm4_sr_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:{"text":"[INFO] Survival Refightalized changed gamerule natural_health_regeneration to false"}}
scoreboard players set $natural_regen_disabled gm4_sr_data 1
-execute store result score $naturalregeneration gm4_sr_data run gamerule naturalRegeneration
-execute if score $natural_regen gm4_sr_config matches 1 if score $naturalregeneration gm4_sr_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:[{"text":"[WARN]","color":"red"},{"text":" Survival Refightalized requires naturalRegeneration to be false, but it is true. ","color":"white"},{"text":"click here to fix","color":"red","clickEvent":{"action":"suggest_command","value":"/gamerule naturalRegeneration false"}}]}
+execute store result score $naturalregeneration gm4_sr_data run gamerule natural_health_regeneration
+execute if score $natural_regen gm4_sr_config matches 1 if score $naturalregeneration gm4_sr_data matches 1 run data modify storage gm4:log queue append value {type:"text",message:[{"text":"[WARN]","color":"red"},{"text":" Survival Refightalized requires minecraft:natural_health_regeneration to be false, but it is true. ","color":"white"},{"text":"click here to fix","color":"red","clickEvent":{"action":"suggest_command","value":"/gamerule natural_health_regeneration false"}}]}
# constants
scoreboard players set #-128 gm4_sr_data -128
diff --git a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player/health/reduce/death.mcfunction b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player/health/reduce/death.mcfunction
index c310112ad3..96626d4255 100644
--- a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player/health/reduce/death.mcfunction
+++ b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player/health/reduce/death.mcfunction
@@ -9,8 +9,8 @@ execute if items entity @s weapon.* *[death_protection] run return run function
tellraw @s[tag=gm4_sr_dev.damage_log] [{"text":"Custom Death Message:","color":"gray"}]
# kill player with custom death message
-execute store result score $showDeathMessages gm4_sr_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $showDeathMessages gm4_sr_data run gamerule show_death_messages
+gamerule show_death_messages false
kill @s
execute if score $showDeathMessages gm4_sr_data matches 1 run tellraw @a ["",{"selector":"@s"},{"translate":"text.gm4.survival_refightalized.death","fallback":" ran out of health"}]
-execute if score $showDeathMessages gm4_sr_data matches 1 run gamerule showDeathMessages true
+execute if score $showDeathMessages gm4_sr_data matches 1 run gamerule show_death_messages true
diff --git a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player_submain.mcfunction b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player_submain.mcfunction
index 38e7a854fb..aacf67520d 100644
--- a/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player_submain.mcfunction
+++ b/gm4_survival_refightalized/data/gm4_survival_refightalized/function/player_submain.mcfunction
@@ -15,7 +15,7 @@ execute as @a[scores={gm4_sr_stat.deaths=1..}] run function gm4_survival_refight
# armor recharge timer
execute as @a[gamemode=!spectator,tag=gm4_sr_armor.reduction] run function gm4_survival_refightalized:player/armor/timer
# health regen timer
-execute unless score $natural_regen gm4_sr_config matches -1 store result score $natural_regen gm4_sr_config run gamerule naturalRegeneration
+execute unless score $natural_regen gm4_sr_config matches -1 store result score $natural_regen gm4_sr_config run gamerule natural_health_regeneration
execute if score $natural_regen gm4_sr_config matches 0 as @a[gamemode=!spectator] run function gm4_survival_refightalized:player/health/regeneration/timer
# if player has armor use new damage calculation
diff --git a/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/modify.json b/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/modify.json
index 81b52dd0d7..b160b06140 100644
--- a/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/modify.json
+++ b/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/modify.json
@@ -6,6 +6,7 @@
"minecraft:drowned",
"minecraft:enderman",
"minecraft:husk",
+ {"id": "minecraft:parched", "required": false},
"minecraft:phantom",
"minecraft:piglin",
"minecraft:piglin_brute",
diff --git a/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/skeleton_types.json b/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/skeleton_types.json
index 0dbca73205..c6134d6b8e 100644
--- a/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/skeleton_types.json
+++ b/gm4_survival_refightalized/data/gm4_survival_refightalized/tags/entity_type/skeleton_types.json
@@ -1,6 +1,7 @@
{
"values": [
"minecraft:bogged",
+ {"id": "minecraft:parched", "required": false},
"minecraft:skeleton",
"minecraft:stray",
"minecraft:wither_skeleton"
diff --git a/gm4_sweethearts/data/gm4_sweethearts/function/kill_donor.mcfunction b/gm4_sweethearts/data/gm4_sweethearts/function/kill_donor.mcfunction
index 1f86b2ac3d..dc21a8f588 100644
--- a/gm4_sweethearts/data/gm4_sweethearts/function/kill_donor.mcfunction
+++ b/gm4_sweethearts/data/gm4_sweethearts/function/kill_donor.mcfunction
@@ -1,10 +1,10 @@
# @s = sneaking player donating health
# run from transfer_donor
-execute store result score $deathmessage gm4_sh_data run gamerule showDeathMessages
-gamerule showDeathMessages false
+execute store result score $deathmessage gm4_sh_data run gamerule show_death_messages
+gamerule show_death_messages false
advancement grant @s only gm4:sweethearts
execute if score $deathmessage gm4_sh_data matches 1 run tellraw @a [{"text":"","color":"white"},{"selector":"@s"},{"text":" was shot through the heart and "},{"selector":"@p[tag=gm4_sh_recipient]"},{"text":" was to blame"}]
kill @s
-execute if score $deathmessage gm4_sh_data matches 1 run gamerule showDeathMessages true
+execute if score $deathmessage gm4_sh_data matches 1 run gamerule show_death_messages true
scoreboard players reset $deathmessage gm4_sh_data
diff --git a/lib_custom_crafters/data/gm4_custom_crafters/function/process_input/check_item.mcfunction b/lib_custom_crafters/data/gm4_custom_crafters/function/process_input/check_item.mcfunction
index c6c6648d4c..64efcb550f 100644
--- a/lib_custom_crafters/data/gm4_custom_crafters/function/process_input/check_item.mcfunction
+++ b/lib_custom_crafters/data/gm4_custom_crafters/function/process_input/check_item.mcfunction
@@ -6,9 +6,9 @@
# update item
data modify storage gm4_custom_crafters:temp/crafter item set from storage gm4_custom_crafters:temp/crafter Items[-1]
-data modify entity 344d47-4-4-4-f04ce104d HandItems[0] set from storage gm4_custom_crafters:temp/crafter item
+data modify entity 344d47-4-4-4-f04ce104d equipment.mainhand set from storage gm4_custom_crafters:temp/crafter item
execute as 344d47-4-4-4-f04ce104d run function #gm4_custom_crafters:custom_item_checks
-data remove entity 344d47-4-4-4-f04ce104d HandItems[0]
+data remove entity 344d47-4-4-4-f04ce104d equipment.mainhand
data modify storage gm4_custom_crafters:temp/crafter new_items append from storage gm4_custom_crafters:temp/crafter item
# clean up storage
diff --git a/lib_custom_crafters/generate_item_tags.py b/lib_custom_crafters/generate_item_tags.py
index d3bfbab00f..63e3c1c944 100644
--- a/lib_custom_crafters/generate_item_tags.py
+++ b/lib_custom_crafters/generate_item_tags.py
@@ -9,6 +9,7 @@ def beet_default(ctx: Context):
item_tags = [
id.removeprefix("minecraft:")
for id in item_tags
+ if "enchantable/sword" not in id
]
for id in item_tags:
diff --git a/lib_forceload/data/gm4_forceload/function/load.mcfunction b/lib_forceload/data/gm4_forceload/function/load.mcfunction
index 170e07507c..2946fa974b 100644
--- a/lib_forceload/data/gm4_forceload/function/load.mcfunction
+++ b/lib_forceload/data/gm4_forceload/function/load.mcfunction
@@ -1,5 +1,5 @@
scoreboard objectives add gm4_dimension dummy
-gamerule commandBlockOutput false
+gamerule command_block_output false
execute store success score $initialized gm4_dimension if block 29999998 1 7133 birch_wall_sign
execute if score $initialized gm4_dimension matches 0 run summon marker ~ 0 ~ {CustomName:"minecraft:overworld",Tags:["gm4_dimension","gm4_new_dimension"]}
diff --git a/lib_trades/README.md b/lib_trades/README.md
index 9add49e105..d116b96f97 100644
--- a/lib_trades/README.md
+++ b/lib_trades/README.md
@@ -56,7 +56,7 @@ Details on how to load trades can found in the *Loading Trades* section below. O
To load trades, a function that spawns trade options must be provided (splitting your trades over multiple functions is allowed, as long as all trade options are spawned within the same tick). "Loading Trades" equates to calling this function.
For each trade option a `trader_llama` entity must be spawned, the following NBT is recommended as a base:
-```summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{},{},{}]}```
+```summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[]}```
The tag `gm4_trade_option` is mandatory and is used by the library to identify available trade options. If the llama has to be targeted again after being spawned in (e.g. for populating its inventory using `/loot` or `/item replace`), the addition of a temporary tag is recommended.
diff --git a/lib_trades/example_use/data/example_pack/functions/wandering_trader/register_trade.mcfunction b/lib_trades/example_use/data/example_pack/functions/wandering_trader/register_trade.mcfunction
index 249860c312..8fdd34c56d 100644
--- a/lib_trades/example_use/data/example_pack/functions/wandering_trader/register_trade.mcfunction
+++ b/lib_trades/example_use/data/example_pack/functions/wandering_trader/register_trade.mcfunction
@@ -14,13 +14,13 @@ execute if predicate example_pack:the_end run summon trader_llama ~ 0 ~ {Silent:
summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:spawner",count:1,Slot:2b},{id:"minecraft:emerald",count:64,Slot:3b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{pool:"example_pack:foo_trades",options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
# a trade that uses a loot table for the sell and the buy option
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:24,rewardXp:0b}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:24,rewardXp:0b}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.0 loot example_pack:blocks
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.1 loot example_pack:shinies
tag @e[type=trader_llama] remove gm4_new_trade_option
# another trade in the trade pool "example_pack:foo_trades"
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{},{},{id:"minecraft:rotten_flesh",count:1,Slot:4b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{pool:"example_pack:foo_trades",options:{maxUses:1,rewardXp:1b,xp:24,priceMultiplier:0.1f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{id:"minecraft:rotten_flesh",count:1,Slot:2b}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{pool:"example_pack:foo_trades",options:{maxUses:1,rewardXp:1b,xp:24,priceMultiplier:0.1f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.0 loot example_pack:spawn_eggs
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.1 loot example_pack:shinies
tag @e[type=trader_llama] remove gm4_new_trade_option
@@ -29,6 +29,6 @@ tag @e[type=trader_llama] remove gm4_new_trade_option
summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option"],Items:[{id:"minecraft:slime_block",count:1,Slot:2b},{id:"minecraft:emerald",count:1,Slot:3b},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{pool:"example_pack:bar_trades",options:{maxUses:1,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
# a trade in the trade pool "example_pack:bar_trades", that uses one loot table to populate the entire trade
-summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[{},{},{}],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:2,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
+summon trader_llama ~ 0 ~ {Silent:1b,NoGravity:1b,Invulnerable:1b,ChestedHorse:1b,Variant:0,Strength:1,DespawnDelay:1,Tags:["gm4_trade_option","gm4_new_trade_option"],Items:[],equipment:{body:{id:"minecraft:light_blue_carpet",count:1,components:{"minecraft:custom_data":{gm4_trades:{options:{maxUses:2,rewardXp:1b,xp:1,priceMultiplier:0.05f}}}}}}}
loot replace entity @e[type=trader_llama,limit=1,tag=gm4_new_trade_option] horse.0 loot example_pack:pickaxe_trade
tag @e[type=trader_llama] remove gm4_new_trade_option
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/badlands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/badlands.json
new file mode 100644
index 0000000000..f0fc8e318d
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/badlands.json
@@ -0,0 +1,151 @@
+{
+ "carvers": "#minecraft:in_biome/badlands",
+ "creature_spawn_probability": 0.03,
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "foliage_color": 10387789,
+ "grass_color": 9470285,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.badlands"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/badlands",
+ "#minecraft:lakes/in_biome/badlands",
+ "#minecraft:local_modifications/in_biome/badlands",
+ "#minecraft:underground_structures/in_biome/badlands",
+ "#minecraft:surface_structures/in_biome/badlands",
+ "#minecraft:strongholds/in_biome/badlands",
+ "#minecraft:underground_ores/in_biome/badlands",
+ "#minecraft:underground_decoration/in_biome/badlands",
+ "#minecraft:fluid_springs/in_biome/badlands",
+ "#minecraft:vegetal_decoration/in_biome/badlands",
+ "#minecraft:top_layer_modification/in_biome/badlands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 6
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/bamboo_jungle.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/bamboo_jungle.json
new file mode 100644
index 0000000000..e7f1a262a6
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/bamboo_jungle.json
@@ -0,0 +1,166 @@
+{
+ "carvers": "#minecraft:in_biome/bamboo_jungle",
+ "downfall": 0.9,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.bamboo_jungle"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7842047,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/bamboo_jungle",
+ "#minecraft:lakes/in_biome/bamboo_jungle",
+ "#minecraft:local_modifications/in_biome/bamboo_jungle",
+ "#minecraft:underground_structures/in_biome/bamboo_jungle",
+ "#minecraft:surface_structures/in_biome/bamboo_jungle",
+ "#minecraft:strongholds/in_biome/bamboo_jungle",
+ "#minecraft:underground_ores/in_biome/bamboo_jungle",
+ "#minecraft:underground_decoration/in_biome/bamboo_jungle",
+ "#minecraft:fluid_springs/in_biome/bamboo_jungle",
+ "#minecraft:vegetal_decoration/in_biome/bamboo_jungle",
+ "#minecraft:top_layer_modification/in_biome/bamboo_jungle"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:parrot",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 40
+ },
+ {
+ "type": "minecraft:panda",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 80
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:ocelot",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 2
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.95
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/basalt_deltas.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/basalt_deltas.json
new file mode 100644
index 0000000000..d08eb025fd
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/basalt_deltas.json
@@ -0,0 +1,85 @@
+{
+ "carvers": "#minecraft:in_biome/basalt_deltas",
+ "downfall": 0.0,
+ "effects": {
+ "additions_sound": {
+ "sound": "minecraft:ambient.basalt_deltas.additions",
+ "tick_chance": 0.0111
+ },
+ "ambient_sound": "minecraft:ambient.basalt_deltas.loop",
+ "fog_color": 6840176,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.basalt_deltas.mood",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.nether.basalt_deltas"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "particle": {
+ "options": {
+ "type": "minecraft:white_ash"
+ },
+ "probability": 0.118093334
+ },
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/basalt_deltas",
+ "#minecraft:lakes/in_biome/basalt_deltas",
+ "#minecraft:local_modifications/in_biome/basalt_deltas",
+ "#minecraft:underground_structures/in_biome/basalt_deltas",
+ "#minecraft:surface_structures/in_biome/basalt_deltas",
+ "#minecraft:strongholds/in_biome/basalt_deltas",
+ "#minecraft:underground_ores/in_biome/basalt_deltas",
+ "#minecraft:underground_decoration/in_biome/basalt_deltas",
+ "#minecraft:fluid_springs/in_biome/basalt_deltas",
+ "#minecraft:vegetal_decoration/in_biome/basalt_deltas",
+ "#minecraft:top_layer_modification/in_biome/basalt_deltas"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:strider",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 60
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:ghast",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 40
+ },
+ {
+ "type": "minecraft:magma_cube",
+ "maxCount": 5,
+ "minCount": 2,
+ "weight": 100
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/beach.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/beach.json
new file mode 100644
index 0000000000..172f115cbd
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/beach.json
@@ -0,0 +1,113 @@
+{
+ "carvers": "#minecraft:in_biome/beach",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/beach",
+ "#minecraft:lakes/in_biome/beach",
+ "#minecraft:local_modifications/in_biome/beach",
+ "#minecraft:underground_structures/in_biome/beach",
+ "#minecraft:surface_structures/in_biome/beach",
+ "#minecraft:strongholds/in_biome/beach",
+ "#minecraft:underground_ores/in_biome/beach",
+ "#minecraft:underground_decoration/in_biome/beach",
+ "#minecraft:fluid_springs/in_biome/beach",
+ "#minecraft:vegetal_decoration/in_biome/beach",
+ "#minecraft:top_layer_modification/in_biome/beach"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:turtle",
+ "maxCount": 5,
+ "minCount": 2,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/birch_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/birch_forest.json
new file mode 100644
index 0000000000..44c5a15db7
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/birch_forest.json
@@ -0,0 +1,142 @@
+{
+ "carvers": "#minecraft:in_biome/birch_forest",
+ "downfall": 0.6,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8037887,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/birch_forest",
+ "#minecraft:lakes/in_biome/birch_forest",
+ "#minecraft:local_modifications/in_biome/birch_forest",
+ "#minecraft:underground_structures/in_biome/birch_forest",
+ "#minecraft:surface_structures/in_biome/birch_forest",
+ "#minecraft:strongholds/in_biome/birch_forest",
+ "#minecraft:underground_ores/in_biome/birch_forest",
+ "#minecraft:underground_decoration/in_biome/birch_forest",
+ "#minecraft:fluid_springs/in_biome/birch_forest",
+ "#minecraft:vegetal_decoration/in_biome/birch_forest",
+ "#minecraft:top_layer_modification/in_biome/birch_forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.6
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cherry_grove.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cherry_grove.json
new file mode 100644
index 0000000000..b89b4c3eff
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cherry_grove.json
@@ -0,0 +1,138 @@
+{
+ "carvers": "#minecraft:in_biome/cherry_grove",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "foliage_color": 11983713,
+ "grass_color": 11983713,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.cherry_grove"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 6141935,
+ "water_fog_color": 6141935
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/cherry_grove",
+ "#minecraft:lakes/in_biome/cherry_grove",
+ "#minecraft:local_modifications/in_biome/cherry_grove",
+ "#minecraft:underground_structures/in_biome/cherry_grove",
+ "#minecraft:surface_structures/in_biome/cherry_grove",
+ "#minecraft:strongholds/in_biome/cherry_grove",
+ "#minecraft:underground_ores/in_biome/cherry_grove",
+ "#minecraft:underground_decoration/in_biome/cherry_grove",
+ "#minecraft:fluid_springs/in_biome/cherry_grove",
+ "#minecraft:vegetal_decoration/in_biome/cherry_grove",
+ "#minecraft:top_layer_modification/in_biome/cherry_grove"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:pig",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 2
+ },
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 2
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cold_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cold_ocean.json
new file mode 100644
index 0000000000..29b02227e6
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/cold_ocean.json
@@ -0,0 +1,132 @@
+{
+ "carvers": "#minecraft:in_biome/cold_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4020182,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/cold_ocean",
+ "#minecraft:lakes/in_biome/cold_ocean",
+ "#minecraft:local_modifications/in_biome/cold_ocean",
+ "#minecraft:underground_structures/in_biome/cold_ocean",
+ "#minecraft:surface_structures/in_biome/cold_ocean",
+ "#minecraft:strongholds/in_biome/cold_ocean",
+ "#minecraft:underground_ores/in_biome/cold_ocean",
+ "#minecraft:underground_decoration/in_biome/cold_ocean",
+ "#minecraft:fluid_springs/in_biome/cold_ocean",
+ "#minecraft:vegetal_decoration/in_biome/cold_ocean",
+ "#minecraft:top_layer_modification/in_biome/cold_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 15
+ },
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 15
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 3
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/crimson_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/crimson_forest.json
new file mode 100644
index 0000000000..d5e64cc99b
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/crimson_forest.json
@@ -0,0 +1,91 @@
+{
+ "carvers": "#minecraft:in_biome/crimson_forest",
+ "downfall": 0.0,
+ "effects": {
+ "additions_sound": {
+ "sound": "minecraft:ambient.crimson_forest.additions",
+ "tick_chance": 0.0111
+ },
+ "ambient_sound": "minecraft:ambient.crimson_forest.loop",
+ "fog_color": 3343107,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.crimson_forest.mood",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.nether.crimson_forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "particle": {
+ "options": {
+ "type": "minecraft:crimson_spore"
+ },
+ "probability": 0.025
+ },
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/crimson_forest",
+ "#minecraft:lakes/in_biome/crimson_forest",
+ "#minecraft:local_modifications/in_biome/crimson_forest",
+ "#minecraft:underground_structures/in_biome/crimson_forest",
+ "#minecraft:surface_structures/in_biome/crimson_forest",
+ "#minecraft:strongholds/in_biome/crimson_forest",
+ "#minecraft:underground_ores/in_biome/crimson_forest",
+ "#minecraft:underground_decoration/in_biome/crimson_forest",
+ "#minecraft:fluid_springs/in_biome/crimson_forest",
+ "#minecraft:vegetal_decoration/in_biome/crimson_forest",
+ "#minecraft:top_layer_modification/in_biome/crimson_forest"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:strider",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 60
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:zombified_piglin",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:hoglin",
+ "maxCount": 4,
+ "minCount": 3,
+ "weight": 9
+ },
+ {
+ "type": "minecraft:piglin",
+ "maxCount": 4,
+ "minCount": 3,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dark_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dark_forest.json
new file mode 100644
index 0000000000..2f3b8e4346
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dark_forest.json
@@ -0,0 +1,144 @@
+{
+ "carvers": "#minecraft:in_biome/dark_forest",
+ "downfall": 0.8,
+ "effects": {
+ "dry_foliage_color": 8082228,
+ "fog_color": 12638463,
+ "grass_color_modifier": "dark_forest",
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7972607,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/dark_forest",
+ "#minecraft:lakes/in_biome/dark_forest",
+ "#minecraft:local_modifications/in_biome/dark_forest",
+ "#minecraft:underground_structures/in_biome/dark_forest",
+ "#minecraft:surface_structures/in_biome/dark_forest",
+ "#minecraft:strongholds/in_biome/dark_forest",
+ "#minecraft:underground_ores/in_biome/dark_forest",
+ "#minecraft:underground_decoration/in_biome/dark_forest",
+ "#minecraft:fluid_springs/in_biome/dark_forest",
+ "#minecraft:vegetal_decoration/in_biome/dark_forest",
+ "#minecraft:top_layer_modification/in_biome/dark_forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_cold_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_cold_ocean.json
new file mode 100644
index 0000000000..1111e28903
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_cold_ocean.json
@@ -0,0 +1,132 @@
+{
+ "carvers": "#minecraft:in_biome/deep_cold_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4020182,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/deep_cold_ocean",
+ "#minecraft:lakes/in_biome/deep_cold_ocean",
+ "#minecraft:local_modifications/in_biome/deep_cold_ocean",
+ "#minecraft:underground_structures/in_biome/deep_cold_ocean",
+ "#minecraft:surface_structures/in_biome/deep_cold_ocean",
+ "#minecraft:strongholds/in_biome/deep_cold_ocean",
+ "#minecraft:underground_ores/in_biome/deep_cold_ocean",
+ "#minecraft:underground_decoration/in_biome/deep_cold_ocean",
+ "#minecraft:fluid_springs/in_biome/deep_cold_ocean",
+ "#minecraft:vegetal_decoration/in_biome/deep_cold_ocean",
+ "#minecraft:top_layer_modification/in_biome/deep_cold_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 15
+ },
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 15
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 3
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_dark.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_dark.json
new file mode 100644
index 0000000000..6115364853
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_dark.json
@@ -0,0 +1,54 @@
+{
+ "carvers": "#minecraft:in_biome/deep_dark",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.deep_dark"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/deep_dark",
+ "#minecraft:lakes/in_biome/deep_dark",
+ "#minecraft:local_modifications/in_biome/deep_dark",
+ "#minecraft:underground_structures/in_biome/deep_dark",
+ "#minecraft:surface_structures/in_biome/deep_dark",
+ "#minecraft:strongholds/in_biome/deep_dark",
+ "#minecraft:underground_ores/in_biome/deep_dark",
+ "#minecraft:underground_decoration/in_biome/deep_dark",
+ "#minecraft:fluid_springs/in_biome/deep_dark",
+ "#minecraft:vegetal_decoration/in_biome/deep_dark",
+ "#minecraft:top_layer_modification/in_biome/deep_dark"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_frozen_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_frozen_ocean.json
new file mode 100644
index 0000000000..07e42a81af
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_frozen_ocean.json
@@ -0,0 +1,134 @@
+{
+ "carvers": "#minecraft:in_biome/deep_frozen_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 3750089,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/deep_frozen_ocean",
+ "#minecraft:lakes/in_biome/deep_frozen_ocean",
+ "#minecraft:local_modifications/in_biome/deep_frozen_ocean",
+ "#minecraft:underground_structures/in_biome/deep_frozen_ocean",
+ "#minecraft:surface_structures/in_biome/deep_frozen_ocean",
+ "#minecraft:strongholds/in_biome/deep_frozen_ocean",
+ "#minecraft:underground_ores/in_biome/deep_frozen_ocean",
+ "#minecraft:underground_decoration/in_biome/deep_frozen_ocean",
+ "#minecraft:fluid_springs/in_biome/deep_frozen_ocean",
+ "#minecraft:vegetal_decoration/in_biome/deep_frozen_ocean",
+ "#minecraft:top_layer_modification/in_biome/deep_frozen_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:polar_bear",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 15
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 1
+ }
+ ]
+ },
+ "temperature": 0.5,
+ "temperature_modifier": "frozen"
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json
new file mode 100644
index 0000000000..50ae6f73a0
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json
@@ -0,0 +1,144 @@
+{
+ "carvers": "#minecraft:in_biome/deep_lukewarm_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4566514,
+ "water_fog_color": 267827
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/deep_lukewarm_ocean",
+ "#minecraft:lakes/in_biome/deep_lukewarm_ocean",
+ "#minecraft:local_modifications/in_biome/deep_lukewarm_ocean",
+ "#minecraft:underground_structures/in_biome/deep_lukewarm_ocean",
+ "#minecraft:surface_structures/in_biome/deep_lukewarm_ocean",
+ "#minecraft:strongholds/in_biome/deep_lukewarm_ocean",
+ "#minecraft:underground_ores/in_biome/deep_lukewarm_ocean",
+ "#minecraft:underground_decoration/in_biome/deep_lukewarm_ocean",
+ "#minecraft:fluid_springs/in_biome/deep_lukewarm_ocean",
+ "#minecraft:vegetal_decoration/in_biome/deep_lukewarm_ocean",
+ "#minecraft:top_layer_modification/in_biome/deep_lukewarm_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:pufferfish",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:tropical_fish",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 25
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:dolphin",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 2
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_ocean.json
new file mode 100644
index 0000000000..9910217bdb
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/deep_ocean.json
@@ -0,0 +1,132 @@
+{
+ "carvers": "#minecraft:in_biome/deep_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/deep_ocean",
+ "#minecraft:lakes/in_biome/deep_ocean",
+ "#minecraft:local_modifications/in_biome/deep_ocean",
+ "#minecraft:underground_structures/in_biome/deep_ocean",
+ "#minecraft:surface_structures/in_biome/deep_ocean",
+ "#minecraft:strongholds/in_biome/deep_ocean",
+ "#minecraft:underground_ores/in_biome/deep_ocean",
+ "#minecraft:underground_decoration/in_biome/deep_ocean",
+ "#minecraft:fluid_springs/in_biome/deep_ocean",
+ "#minecraft:vegetal_decoration/in_biome/deep_ocean",
+ "#minecraft:top_layer_modification/in_biome/deep_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 10
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:dolphin",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/desert.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/desert.json
new file mode 100644
index 0000000000..ce71f44e9d
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/desert.json
@@ -0,0 +1,136 @@
+{
+ "carvers": "#minecraft:in_biome/desert",
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.desert"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/desert",
+ "#minecraft:lakes/in_biome/desert",
+ "#minecraft:local_modifications/in_biome/desert",
+ "#minecraft:underground_structures/in_biome/desert",
+ "#minecraft:surface_structures/in_biome/desert",
+ "#minecraft:strongholds/in_biome/desert",
+ "#minecraft:underground_ores/in_biome/desert",
+ "#minecraft:underground_decoration/in_biome/desert",
+ "#minecraft:fluid_springs/in_biome/desert",
+ "#minecraft:vegetal_decoration/in_biome/desert",
+ "#minecraft:top_layer_modification/in_biome/desert"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:camel",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 19
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:husk",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 80
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dripstone_caves.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dripstone_caves.json
new file mode 100644
index 0000000000..4d29662165
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/dripstone_caves.json
@@ -0,0 +1,123 @@
+{
+ "carvers": "#minecraft:in_biome/dripstone_caves",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.dripstone_caves"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/dripstone_caves",
+ "#minecraft:lakes/in_biome/dripstone_caves",
+ "#minecraft:local_modifications/in_biome/dripstone_caves",
+ "#minecraft:underground_structures/in_biome/dripstone_caves",
+ "#minecraft:surface_structures/in_biome/dripstone_caves",
+ "#minecraft:strongholds/in_biome/dripstone_caves",
+ "#minecraft:underground_ores/in_biome/dripstone_caves",
+ "#minecraft:underground_decoration/in_biome/dripstone_caves",
+ "#minecraft:fluid_springs/in_biome/dripstone_caves",
+ "#minecraft:vegetal_decoration/in_biome/dripstone_caves",
+ "#minecraft:top_layer_modification/in_biome/dripstone_caves"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_barrens.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_barrens.json
new file mode 100644
index 0000000000..54868f9838
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_barrens.json
@@ -0,0 +1,50 @@
+{
+ "carvers": "#minecraft:in_biome/end_barrens",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 10518688,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 0,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/end_barrens",
+ "#minecraft:lakes/in_biome/end_barrens",
+ "#minecraft:local_modifications/in_biome/end_barrens",
+ "#minecraft:underground_structures/in_biome/end_barrens",
+ "#minecraft:surface_structures/in_biome/end_barrens",
+ "#minecraft:strongholds/in_biome/end_barrens",
+ "#minecraft:underground_ores/in_biome/end_barrens",
+ "#minecraft:underground_decoration/in_biome/end_barrens",
+ "#minecraft:fluid_springs/in_biome/end_barrens",
+ "#minecraft:vegetal_decoration/in_biome/end_barrens",
+ "#minecraft:top_layer_modification/in_biome/end_barrens"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_highlands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_highlands.json
new file mode 100644
index 0000000000..6fc918fd76
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_highlands.json
@@ -0,0 +1,50 @@
+{
+ "carvers": "#minecraft:in_biome/end_highlands",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 10518688,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 0,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/end_highlands",
+ "#minecraft:lakes/in_biome/end_highlands",
+ "#minecraft:local_modifications/in_biome/end_highlands",
+ "#minecraft:underground_structures/in_biome/end_highlands",
+ "#minecraft:surface_structures/in_biome/end_highlands",
+ "#minecraft:strongholds/in_biome/end_highlands",
+ "#minecraft:underground_ores/in_biome/end_highlands",
+ "#minecraft:underground_decoration/in_biome/end_highlands",
+ "#minecraft:fluid_springs/in_biome/end_highlands",
+ "#minecraft:vegetal_decoration/in_biome/end_highlands",
+ "#minecraft:top_layer_modification/in_biome/end_highlands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_midlands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_midlands.json
new file mode 100644
index 0000000000..0567ffb6bf
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/end_midlands.json
@@ -0,0 +1,50 @@
+{
+ "carvers": "#minecraft:in_biome/end_midlands",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 10518688,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 0,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/end_midlands",
+ "#minecraft:lakes/in_biome/end_midlands",
+ "#minecraft:local_modifications/in_biome/end_midlands",
+ "#minecraft:underground_structures/in_biome/end_midlands",
+ "#minecraft:surface_structures/in_biome/end_midlands",
+ "#minecraft:strongholds/in_biome/end_midlands",
+ "#minecraft:underground_ores/in_biome/end_midlands",
+ "#minecraft:underground_decoration/in_biome/end_midlands",
+ "#minecraft:fluid_springs/in_biome/end_midlands",
+ "#minecraft:vegetal_decoration/in_biome/end_midlands",
+ "#minecraft:top_layer_modification/in_biome/end_midlands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/eroded_badlands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/eroded_badlands.json
new file mode 100644
index 0000000000..4059ab97c3
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/eroded_badlands.json
@@ -0,0 +1,151 @@
+{
+ "carvers": "#minecraft:in_biome/eroded_badlands",
+ "creature_spawn_probability": 0.03,
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "foliage_color": 10387789,
+ "grass_color": 9470285,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.badlands"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/eroded_badlands",
+ "#minecraft:lakes/in_biome/eroded_badlands",
+ "#minecraft:local_modifications/in_biome/eroded_badlands",
+ "#minecraft:underground_structures/in_biome/eroded_badlands",
+ "#minecraft:surface_structures/in_biome/eroded_badlands",
+ "#minecraft:strongholds/in_biome/eroded_badlands",
+ "#minecraft:underground_ores/in_biome/eroded_badlands",
+ "#minecraft:underground_decoration/in_biome/eroded_badlands",
+ "#minecraft:fluid_springs/in_biome/eroded_badlands",
+ "#minecraft:vegetal_decoration/in_biome/eroded_badlands",
+ "#minecraft:top_layer_modification/in_biome/eroded_badlands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 6
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/flower_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/flower_forest.json
new file mode 100644
index 0000000000..cff2119f7a
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/flower_forest.json
@@ -0,0 +1,148 @@
+{
+ "carvers": "#minecraft:in_biome/flower_forest",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.flower_forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7972607,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/flower_forest",
+ "#minecraft:lakes/in_biome/flower_forest",
+ "#minecraft:local_modifications/in_biome/flower_forest",
+ "#minecraft:underground_structures/in_biome/flower_forest",
+ "#minecraft:surface_structures/in_biome/flower_forest",
+ "#minecraft:strongholds/in_biome/flower_forest",
+ "#minecraft:underground_ores/in_biome/flower_forest",
+ "#minecraft:underground_decoration/in_biome/flower_forest",
+ "#minecraft:fluid_springs/in_biome/flower_forest",
+ "#minecraft:vegetal_decoration/in_biome/flower_forest",
+ "#minecraft:top_layer_modification/in_biome/flower_forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/forest.json
new file mode 100644
index 0000000000..259ea80bac
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/forest.json
@@ -0,0 +1,148 @@
+{
+ "carvers": "#minecraft:in_biome/forest",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7972607,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/forest",
+ "#minecraft:lakes/in_biome/forest",
+ "#minecraft:local_modifications/in_biome/forest",
+ "#minecraft:underground_structures/in_biome/forest",
+ "#minecraft:surface_structures/in_biome/forest",
+ "#minecraft:strongholds/in_biome/forest",
+ "#minecraft:underground_ores/in_biome/forest",
+ "#minecraft:underground_decoration/in_biome/forest",
+ "#minecraft:fluid_springs/in_biome/forest",
+ "#minecraft:vegetal_decoration/in_biome/forest",
+ "#minecraft:top_layer_modification/in_biome/forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_ocean.json
new file mode 100644
index 0000000000..6924270d4e
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_ocean.json
@@ -0,0 +1,134 @@
+{
+ "carvers": "#minecraft:in_biome/frozen_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8364543,
+ "water_color": 3750089,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/frozen_ocean",
+ "#minecraft:lakes/in_biome/frozen_ocean",
+ "#minecraft:local_modifications/in_biome/frozen_ocean",
+ "#minecraft:underground_structures/in_biome/frozen_ocean",
+ "#minecraft:surface_structures/in_biome/frozen_ocean",
+ "#minecraft:strongholds/in_biome/frozen_ocean",
+ "#minecraft:underground_ores/in_biome/frozen_ocean",
+ "#minecraft:underground_decoration/in_biome/frozen_ocean",
+ "#minecraft:fluid_springs/in_biome/frozen_ocean",
+ "#minecraft:vegetal_decoration/in_biome/frozen_ocean",
+ "#minecraft:top_layer_modification/in_biome/frozen_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:polar_bear",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 15
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 1
+ }
+ ]
+ },
+ "temperature": 0.0,
+ "temperature_modifier": "frozen"
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_peaks.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_peaks.json
new file mode 100644
index 0000000000..57e79f23d5
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_peaks.json
@@ -0,0 +1,124 @@
+{
+ "carvers": "#minecraft:in_biome/frozen_peaks",
+ "downfall": 0.9,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.frozen_peaks"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8756735,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/frozen_peaks",
+ "#minecraft:lakes/in_biome/frozen_peaks",
+ "#minecraft:local_modifications/in_biome/frozen_peaks",
+ "#minecraft:underground_structures/in_biome/frozen_peaks",
+ "#minecraft:surface_structures/in_biome/frozen_peaks",
+ "#minecraft:strongholds/in_biome/frozen_peaks",
+ "#minecraft:underground_ores/in_biome/frozen_peaks",
+ "#minecraft:underground_decoration/in_biome/frozen_peaks",
+ "#minecraft:fluid_springs/in_biome/frozen_peaks",
+ "#minecraft:vegetal_decoration/in_biome/frozen_peaks",
+ "#minecraft:top_layer_modification/in_biome/frozen_peaks"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:goat",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": -0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_river.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_river.json
new file mode 100644
index 0000000000..e6e90f4f25
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/frozen_river.json
@@ -0,0 +1,126 @@
+{
+ "carvers": "#minecraft:in_biome/frozen_river",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8364543,
+ "water_color": 3750089,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/frozen_river",
+ "#minecraft:lakes/in_biome/frozen_river",
+ "#minecraft:local_modifications/in_biome/frozen_river",
+ "#minecraft:underground_structures/in_biome/frozen_river",
+ "#minecraft:surface_structures/in_biome/frozen_river",
+ "#minecraft:strongholds/in_biome/frozen_river",
+ "#minecraft:underground_ores/in_biome/frozen_river",
+ "#minecraft:underground_decoration/in_biome/frozen_river",
+ "#minecraft:fluid_springs/in_biome/frozen_river",
+ "#minecraft:vegetal_decoration/in_biome/frozen_river",
+ "#minecraft:top_layer_modification/in_biome/frozen_river"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 2
+ }
+ ]
+ },
+ "temperature": 0.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/grove.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/grove.json
new file mode 100644
index 0000000000..a4ad47fc4c
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/grove.json
@@ -0,0 +1,136 @@
+{
+ "carvers": "#minecraft:in_biome/grove",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.grove"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8495359,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/grove",
+ "#minecraft:lakes/in_biome/grove",
+ "#minecraft:local_modifications/in_biome/grove",
+ "#minecraft:underground_structures/in_biome/grove",
+ "#minecraft:surface_structures/in_biome/grove",
+ "#minecraft:strongholds/in_biome/grove",
+ "#minecraft:underground_ores/in_biome/grove",
+ "#minecraft:underground_decoration/in_biome/grove",
+ "#minecraft:fluid_springs/in_biome/grove",
+ "#minecraft:vegetal_decoration/in_biome/grove",
+ "#minecraft:top_layer_modification/in_biome/grove"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:fox",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 4
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": -0.2
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ice_spikes.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ice_spikes.json
new file mode 100644
index 0000000000..7efe4494c8
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ice_spikes.json
@@ -0,0 +1,126 @@
+{
+ "carvers": "#minecraft:in_biome/ice_spikes",
+ "creature_spawn_probability": 0.07,
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8364543,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/ice_spikes",
+ "#minecraft:lakes/in_biome/ice_spikes",
+ "#minecraft:local_modifications/in_biome/ice_spikes",
+ "#minecraft:underground_structures/in_biome/ice_spikes",
+ "#minecraft:surface_structures/in_biome/ice_spikes",
+ "#minecraft:strongholds/in_biome/ice_spikes",
+ "#minecraft:underground_ores/in_biome/ice_spikes",
+ "#minecraft:underground_decoration/in_biome/ice_spikes",
+ "#minecraft:fluid_springs/in_biome/ice_spikes",
+ "#minecraft:vegetal_decoration/in_biome/ice_spikes",
+ "#minecraft:top_layer_modification/in_biome/ice_spikes"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:polar_bear",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 20
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:stray",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 80
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jagged_peaks.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jagged_peaks.json
new file mode 100644
index 0000000000..3f64bba000
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jagged_peaks.json
@@ -0,0 +1,124 @@
+{
+ "carvers": "#minecraft:in_biome/jagged_peaks",
+ "downfall": 0.9,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.jagged_peaks"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8756735,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/jagged_peaks",
+ "#minecraft:lakes/in_biome/jagged_peaks",
+ "#minecraft:local_modifications/in_biome/jagged_peaks",
+ "#minecraft:underground_structures/in_biome/jagged_peaks",
+ "#minecraft:surface_structures/in_biome/jagged_peaks",
+ "#minecraft:strongholds/in_biome/jagged_peaks",
+ "#minecraft:underground_ores/in_biome/jagged_peaks",
+ "#minecraft:underground_decoration/in_biome/jagged_peaks",
+ "#minecraft:fluid_springs/in_biome/jagged_peaks",
+ "#minecraft:vegetal_decoration/in_biome/jagged_peaks",
+ "#minecraft:top_layer_modification/in_biome/jagged_peaks"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:goat",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": -0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jungle.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jungle.json
new file mode 100644
index 0000000000..dda810da19
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/jungle.json
@@ -0,0 +1,166 @@
+{
+ "carvers": "#minecraft:in_biome/jungle",
+ "downfall": 0.9,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.jungle"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7842047,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/jungle",
+ "#minecraft:lakes/in_biome/jungle",
+ "#minecraft:local_modifications/in_biome/jungle",
+ "#minecraft:underground_structures/in_biome/jungle",
+ "#minecraft:surface_structures/in_biome/jungle",
+ "#minecraft:strongholds/in_biome/jungle",
+ "#minecraft:underground_ores/in_biome/jungle",
+ "#minecraft:underground_decoration/in_biome/jungle",
+ "#minecraft:fluid_springs/in_biome/jungle",
+ "#minecraft:vegetal_decoration/in_biome/jungle",
+ "#minecraft:top_layer_modification/in_biome/jungle"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:parrot",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 40
+ },
+ {
+ "type": "minecraft:panda",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:ocelot",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 2
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.95
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lukewarm_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lukewarm_ocean.json
new file mode 100644
index 0000000000..09fe106eba
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lukewarm_ocean.json
@@ -0,0 +1,144 @@
+{
+ "carvers": "#minecraft:in_biome/lukewarm_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4566514,
+ "water_fog_color": 267827
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/lukewarm_ocean",
+ "#minecraft:lakes/in_biome/lukewarm_ocean",
+ "#minecraft:local_modifications/in_biome/lukewarm_ocean",
+ "#minecraft:underground_structures/in_biome/lukewarm_ocean",
+ "#minecraft:surface_structures/in_biome/lukewarm_ocean",
+ "#minecraft:strongholds/in_biome/lukewarm_ocean",
+ "#minecraft:underground_ores/in_biome/lukewarm_ocean",
+ "#minecraft:underground_decoration/in_biome/lukewarm_ocean",
+ "#minecraft:fluid_springs/in_biome/lukewarm_ocean",
+ "#minecraft:vegetal_decoration/in_biome/lukewarm_ocean",
+ "#minecraft:top_layer_modification/in_biome/lukewarm_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 15
+ },
+ {
+ "type": "minecraft:pufferfish",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:tropical_fish",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 25
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:dolphin",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 2
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lush_caves.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lush_caves.json
new file mode 100644
index 0000000000..8854da513e
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/lush_caves.json
@@ -0,0 +1,131 @@
+{
+ "carvers": "#minecraft:in_biome/lush_caves",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.lush_caves"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/lush_caves",
+ "#minecraft:lakes/in_biome/lush_caves",
+ "#minecraft:local_modifications/in_biome/lush_caves",
+ "#minecraft:underground_structures/in_biome/lush_caves",
+ "#minecraft:surface_structures/in_biome/lush_caves",
+ "#minecraft:strongholds/in_biome/lush_caves",
+ "#minecraft:underground_ores/in_biome/lush_caves",
+ "#minecraft:underground_decoration/in_biome/lush_caves",
+ "#minecraft:fluid_springs/in_biome/lush_caves",
+ "#minecraft:vegetal_decoration/in_biome/lush_caves",
+ "#minecraft:top_layer_modification/in_biome/lush_caves"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [
+ {
+ "type": "minecraft:axolotl",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:tropical_fish",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 25
+ }
+ ],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mangrove_swamp.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mangrove_swamp.json
new file mode 100644
index 0000000000..8a36659c81
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mangrove_swamp.json
@@ -0,0 +1,146 @@
+{
+ "carvers": "#minecraft:in_biome/mangrove_swamp",
+ "downfall": 0.9,
+ "effects": {
+ "dry_foliage_color": 8082228,
+ "fog_color": 12638463,
+ "foliage_color": 9285927,
+ "grass_color_modifier": "swamp",
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.swamp"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 3832426,
+ "water_fog_color": 5077600
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/mangrove_swamp",
+ "#minecraft:lakes/in_biome/mangrove_swamp",
+ "#minecraft:local_modifications/in_biome/mangrove_swamp",
+ "#minecraft:underground_structures/in_biome/mangrove_swamp",
+ "#minecraft:surface_structures/in_biome/mangrove_swamp",
+ "#minecraft:strongholds/in_biome/mangrove_swamp",
+ "#minecraft:underground_ores/in_biome/mangrove_swamp",
+ "#minecraft:underground_decoration/in_biome/mangrove_swamp",
+ "#minecraft:fluid_springs/in_biome/mangrove_swamp",
+ "#minecraft:vegetal_decoration/in_biome/mangrove_swamp",
+ "#minecraft:top_layer_modification/in_biome/mangrove_swamp"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:frog",
+ "maxCount": 5,
+ "minCount": 2,
+ "weight": 10
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 70
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:bogged",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 30
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:tropical_fish",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 25
+ }
+ ],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/meadow.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/meadow.json
new file mode 100644
index 0000000000..200468a137
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/meadow.json
@@ -0,0 +1,136 @@
+{
+ "carvers": "#minecraft:in_biome/meadow",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.meadow"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 937679,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/meadow",
+ "#minecraft:lakes/in_biome/meadow",
+ "#minecraft:local_modifications/in_biome/meadow",
+ "#minecraft:underground_structures/in_biome/meadow",
+ "#minecraft:surface_structures/in_biome/meadow",
+ "#minecraft:strongholds/in_biome/meadow",
+ "#minecraft:underground_ores/in_biome/meadow",
+ "#minecraft:underground_decoration/in_biome/meadow",
+ "#minecraft:fluid_springs/in_biome/meadow",
+ "#minecraft:vegetal_decoration/in_biome/meadow",
+ "#minecraft:top_layer_modification/in_biome/meadow"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 2
+ },
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 2
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mushroom_fields.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mushroom_fields.json
new file mode 100644
index 0000000000..b9368a9c8c
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/mushroom_fields.json
@@ -0,0 +1,64 @@
+{
+ "carvers": "#minecraft:in_biome/mushroom_fields",
+ "downfall": 1.0,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7842047,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/mushroom_fields",
+ "#minecraft:lakes/in_biome/mushroom_fields",
+ "#minecraft:local_modifications/in_biome/mushroom_fields",
+ "#minecraft:underground_structures/in_biome/mushroom_fields",
+ "#minecraft:surface_structures/in_biome/mushroom_fields",
+ "#minecraft:strongholds/in_biome/mushroom_fields",
+ "#minecraft:underground_ores/in_biome/mushroom_fields",
+ "#minecraft:underground_decoration/in_biome/mushroom_fields",
+ "#minecraft:fluid_springs/in_biome/mushroom_fields",
+ "#minecraft:vegetal_decoration/in_biome/mushroom_fields",
+ "#minecraft:top_layer_modification/in_biome/mushroom_fields"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:mooshroom",
+ "maxCount": 8,
+ "minCount": 4,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.9
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/nether_wastes.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/nether_wastes.json
new file mode 100644
index 0000000000..1af0667226
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/nether_wastes.json
@@ -0,0 +1,97 @@
+{
+ "carvers": "#minecraft:in_biome/nether_wastes",
+ "downfall": 0.0,
+ "effects": {
+ "additions_sound": {
+ "sound": "minecraft:ambient.nether_wastes.additions",
+ "tick_chance": 0.0111
+ },
+ "ambient_sound": "minecraft:ambient.nether_wastes.loop",
+ "fog_color": 3344392,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.nether_wastes.mood",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.nether.nether_wastes"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/nether_wastes",
+ "#minecraft:lakes/in_biome/nether_wastes",
+ "#minecraft:local_modifications/in_biome/nether_wastes",
+ "#minecraft:underground_structures/in_biome/nether_wastes",
+ "#minecraft:surface_structures/in_biome/nether_wastes",
+ "#minecraft:strongholds/in_biome/nether_wastes",
+ "#minecraft:underground_ores/in_biome/nether_wastes",
+ "#minecraft:underground_decoration/in_biome/nether_wastes",
+ "#minecraft:fluid_springs/in_biome/nether_wastes",
+ "#minecraft:vegetal_decoration/in_biome/nether_wastes",
+ "#minecraft:top_layer_modification/in_biome/nether_wastes"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:strider",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 60
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:ghast",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 50
+ },
+ {
+ "type": "minecraft:zombified_piglin",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:magma_cube",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 2
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:piglin",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 15
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ocean.json
new file mode 100644
index 0000000000..cf5b1995a3
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/ocean.json
@@ -0,0 +1,132 @@
+{
+ "carvers": "#minecraft:in_biome/ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/ocean",
+ "#minecraft:lakes/in_biome/ocean",
+ "#minecraft:local_modifications/in_biome/ocean",
+ "#minecraft:underground_structures/in_biome/ocean",
+ "#minecraft:surface_structures/in_biome/ocean",
+ "#minecraft:strongholds/in_biome/ocean",
+ "#minecraft:underground_ores/in_biome/ocean",
+ "#minecraft:underground_decoration/in_biome/ocean",
+ "#minecraft:fluid_springs/in_biome/ocean",
+ "#minecraft:vegetal_decoration/in_biome/ocean",
+ "#minecraft:top_layer_modification/in_biome/ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:cod",
+ "maxCount": 6,
+ "minCount": 3,
+ "weight": 10
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:dolphin",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_birch_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_birch_forest.json
new file mode 100644
index 0000000000..18806e6ae4
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_birch_forest.json
@@ -0,0 +1,142 @@
+{
+ "carvers": "#minecraft:in_biome/old_growth_birch_forest",
+ "downfall": 0.6,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8037887,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/old_growth_birch_forest",
+ "#minecraft:lakes/in_biome/old_growth_birch_forest",
+ "#minecraft:local_modifications/in_biome/old_growth_birch_forest",
+ "#minecraft:underground_structures/in_biome/old_growth_birch_forest",
+ "#minecraft:surface_structures/in_biome/old_growth_birch_forest",
+ "#minecraft:strongholds/in_biome/old_growth_birch_forest",
+ "#minecraft:underground_ores/in_biome/old_growth_birch_forest",
+ "#minecraft:underground_decoration/in_biome/old_growth_birch_forest",
+ "#minecraft:fluid_springs/in_biome/old_growth_birch_forest",
+ "#minecraft:vegetal_decoration/in_biome/old_growth_birch_forest",
+ "#minecraft:top_layer_modification/in_biome/old_growth_birch_forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.6
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_pine_taiga.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_pine_taiga.json
new file mode 100644
index 0000000000..0cf87db88b
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_pine_taiga.json
@@ -0,0 +1,160 @@
+{
+ "carvers": "#minecraft:in_biome/old_growth_pine_taiga",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.old_growth_taiga"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8168447,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/old_growth_pine_taiga",
+ "#minecraft:lakes/in_biome/old_growth_pine_taiga",
+ "#minecraft:local_modifications/in_biome/old_growth_pine_taiga",
+ "#minecraft:underground_structures/in_biome/old_growth_pine_taiga",
+ "#minecraft:surface_structures/in_biome/old_growth_pine_taiga",
+ "#minecraft:strongholds/in_biome/old_growth_pine_taiga",
+ "#minecraft:underground_ores/in_biome/old_growth_pine_taiga",
+ "#minecraft:underground_decoration/in_biome/old_growth_pine_taiga",
+ "#minecraft:fluid_springs/in_biome/old_growth_pine_taiga",
+ "#minecraft:vegetal_decoration/in_biome/old_growth_pine_taiga",
+ "#minecraft:top_layer_modification/in_biome/old_growth_pine_taiga"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ },
+ {
+ "type": "minecraft:fox",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 25
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.3
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json
new file mode 100644
index 0000000000..9a0e247dcc
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json
@@ -0,0 +1,160 @@
+{
+ "carvers": "#minecraft:in_biome/old_growth_spruce_taiga",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.old_growth_taiga"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8233983,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/old_growth_spruce_taiga",
+ "#minecraft:lakes/in_biome/old_growth_spruce_taiga",
+ "#minecraft:local_modifications/in_biome/old_growth_spruce_taiga",
+ "#minecraft:underground_structures/in_biome/old_growth_spruce_taiga",
+ "#minecraft:surface_structures/in_biome/old_growth_spruce_taiga",
+ "#minecraft:strongholds/in_biome/old_growth_spruce_taiga",
+ "#minecraft:underground_ores/in_biome/old_growth_spruce_taiga",
+ "#minecraft:underground_decoration/in_biome/old_growth_spruce_taiga",
+ "#minecraft:fluid_springs/in_biome/old_growth_spruce_taiga",
+ "#minecraft:vegetal_decoration/in_biome/old_growth_spruce_taiga",
+ "#minecraft:top_layer_modification/in_biome/old_growth_spruce_taiga"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ },
+ {
+ "type": "minecraft:fox",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.25
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/pale_garden.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/pale_garden.json
new file mode 100644
index 0000000000..dba07f900e
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/pale_garden.json
@@ -0,0 +1,110 @@
+{
+ "carvers": "#minecraft:in_biome/pale_garden",
+ "downfall": 0.8,
+ "effects": {
+ "dry_foliage_color": 10528412,
+ "fog_color": 8484720,
+ "foliage_color": 8883574,
+ "grass_color": 7832178,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [],
+ "music_volume": 0.0,
+ "sky_color": 12171705,
+ "water_color": 7768221,
+ "water_fog_color": 5597568
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/pale_garden",
+ "#minecraft:lakes/in_biome/pale_garden",
+ "#minecraft:local_modifications/in_biome/pale_garden",
+ "#minecraft:underground_structures/in_biome/pale_garden",
+ "#minecraft:surface_structures/in_biome/pale_garden",
+ "#minecraft:strongholds/in_biome/pale_garden",
+ "#minecraft:underground_ores/in_biome/pale_garden",
+ "#minecraft:underground_decoration/in_biome/pale_garden",
+ "#minecraft:fluid_springs/in_biome/pale_garden",
+ "#minecraft:vegetal_decoration/in_biome/pale_garden",
+ "#minecraft:top_layer_modification/in_biome/pale_garden"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.7
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/plains.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/plains.json
new file mode 100644
index 0000000000..4e9bf9a962
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/plains.json
@@ -0,0 +1,143 @@
+{
+ "carvers": "#minecraft:in_biome/plains",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/plains",
+ "#minecraft:lakes/in_biome/plains",
+ "#minecraft:local_modifications/in_biome/plains",
+ "#minecraft:underground_structures/in_biome/plains",
+ "#minecraft:surface_structures/in_biome/plains",
+ "#minecraft:strongholds/in_biome/plains",
+ "#minecraft:underground_ores/in_biome/plains",
+ "#minecraft:underground_decoration/in_biome/plains",
+ "#minecraft:fluid_springs/in_biome/plains",
+ "#minecraft:vegetal_decoration/in_biome/plains",
+ "#minecraft:top_layer_modification/in_biome/plains"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:horse",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/river.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/river.json
new file mode 100644
index 0000000000..179466d536
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/river.json
@@ -0,0 +1,126 @@
+{
+ "carvers": "#minecraft:in_biome/river",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/river",
+ "#minecraft:lakes/in_biome/river",
+ "#minecraft:local_modifications/in_biome/river",
+ "#minecraft:underground_structures/in_biome/river",
+ "#minecraft:surface_structures/in_biome/river",
+ "#minecraft:strongholds/in_biome/river",
+ "#minecraft:underground_ores/in_biome/river",
+ "#minecraft:underground_decoration/in_biome/river",
+ "#minecraft:fluid_springs/in_biome/river",
+ "#minecraft:vegetal_decoration/in_biome/river",
+ "#minecraft:top_layer_modification/in_biome/river"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 100
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:salmon",
+ "maxCount": 5,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 2
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna.json
new file mode 100644
index 0000000000..f36a10ed0d
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna.json
@@ -0,0 +1,149 @@
+{
+ "carvers": "#minecraft:in_biome/savanna",
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/savanna",
+ "#minecraft:lakes/in_biome/savanna",
+ "#minecraft:local_modifications/in_biome/savanna",
+ "#minecraft:underground_structures/in_biome/savanna",
+ "#minecraft:surface_structures/in_biome/savanna",
+ "#minecraft:strongholds/in_biome/savanna",
+ "#minecraft:underground_ores/in_biome/savanna",
+ "#minecraft:underground_decoration/in_biome/savanna",
+ "#minecraft:fluid_springs/in_biome/savanna",
+ "#minecraft:vegetal_decoration/in_biome/savanna",
+ "#minecraft:top_layer_modification/in_biome/savanna"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:horse",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 10
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna_plateau.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna_plateau.json
new file mode 100644
index 0000000000..44cf984a7b
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/savanna_plateau.json
@@ -0,0 +1,161 @@
+{
+ "carvers": "#minecraft:in_biome/savanna_plateau",
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/savanna_plateau",
+ "#minecraft:lakes/in_biome/savanna_plateau",
+ "#minecraft:local_modifications/in_biome/savanna_plateau",
+ "#minecraft:underground_structures/in_biome/savanna_plateau",
+ "#minecraft:surface_structures/in_biome/savanna_plateau",
+ "#minecraft:strongholds/in_biome/savanna_plateau",
+ "#minecraft:underground_ores/in_biome/savanna_plateau",
+ "#minecraft:underground_decoration/in_biome/savanna_plateau",
+ "#minecraft:fluid_springs/in_biome/savanna_plateau",
+ "#minecraft:vegetal_decoration/in_biome/savanna_plateau",
+ "#minecraft:top_layer_modification/in_biome/savanna_plateau"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:horse",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:llama",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 8,
+ "minCount": 4,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/small_end_islands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/small_end_islands.json
new file mode 100644
index 0000000000..a3e2321c7f
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/small_end_islands.json
@@ -0,0 +1,50 @@
+{
+ "carvers": "#minecraft:in_biome/small_end_islands",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 10518688,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 0,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/small_end_islands",
+ "#minecraft:lakes/in_biome/small_end_islands",
+ "#minecraft:local_modifications/in_biome/small_end_islands",
+ "#minecraft:underground_structures/in_biome/small_end_islands",
+ "#minecraft:surface_structures/in_biome/small_end_islands",
+ "#minecraft:strongholds/in_biome/small_end_islands",
+ "#minecraft:underground_ores/in_biome/small_end_islands",
+ "#minecraft:underground_decoration/in_biome/small_end_islands",
+ "#minecraft:fluid_springs/in_biome/small_end_islands",
+ "#minecraft:vegetal_decoration/in_biome/small_end_islands",
+ "#minecraft:top_layer_modification/in_biome/small_end_islands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_beach.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_beach.json
new file mode 100644
index 0000000000..06cd6da3a8
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_beach.json
@@ -0,0 +1,106 @@
+{
+ "carvers": "#minecraft:in_biome/snowy_beach",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8364543,
+ "water_color": 4020182,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/snowy_beach",
+ "#minecraft:lakes/in_biome/snowy_beach",
+ "#minecraft:local_modifications/in_biome/snowy_beach",
+ "#minecraft:underground_structures/in_biome/snowy_beach",
+ "#minecraft:surface_structures/in_biome/snowy_beach",
+ "#minecraft:strongholds/in_biome/snowy_beach",
+ "#minecraft:underground_ores/in_biome/snowy_beach",
+ "#minecraft:underground_decoration/in_biome/snowy_beach",
+ "#minecraft:fluid_springs/in_biome/snowy_beach",
+ "#minecraft:vegetal_decoration/in_biome/snowy_beach",
+ "#minecraft:top_layer_modification/in_biome/snowy_beach"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.05
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_plains.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_plains.json
new file mode 100644
index 0000000000..1f850cac0c
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_plains.json
@@ -0,0 +1,126 @@
+{
+ "carvers": "#minecraft:in_biome/snowy_plains",
+ "creature_spawn_probability": 0.07,
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8364543,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/snowy_plains",
+ "#minecraft:lakes/in_biome/snowy_plains",
+ "#minecraft:local_modifications/in_biome/snowy_plains",
+ "#minecraft:underground_structures/in_biome/snowy_plains",
+ "#minecraft:surface_structures/in_biome/snowy_plains",
+ "#minecraft:strongholds/in_biome/snowy_plains",
+ "#minecraft:underground_ores/in_biome/snowy_plains",
+ "#minecraft:underground_decoration/in_biome/snowy_plains",
+ "#minecraft:fluid_springs/in_biome/snowy_plains",
+ "#minecraft:vegetal_decoration/in_biome/snowy_plains",
+ "#minecraft:top_layer_modification/in_biome/snowy_plains"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:polar_bear",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 20
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:stray",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 80
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_slopes.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_slopes.json
new file mode 100644
index 0000000000..46191fee21
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_slopes.json
@@ -0,0 +1,130 @@
+{
+ "carvers": "#minecraft:in_biome/snowy_slopes",
+ "downfall": 0.9,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.snowy_slopes"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 8560639,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/snowy_slopes",
+ "#minecraft:lakes/in_biome/snowy_slopes",
+ "#minecraft:local_modifications/in_biome/snowy_slopes",
+ "#minecraft:underground_structures/in_biome/snowy_slopes",
+ "#minecraft:surface_structures/in_biome/snowy_slopes",
+ "#minecraft:strongholds/in_biome/snowy_slopes",
+ "#minecraft:underground_ores/in_biome/snowy_slopes",
+ "#minecraft:underground_decoration/in_biome/snowy_slopes",
+ "#minecraft:fluid_springs/in_biome/snowy_slopes",
+ "#minecraft:vegetal_decoration/in_biome/snowy_slopes",
+ "#minecraft:top_layer_modification/in_biome/snowy_slopes"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ },
+ {
+ "type": "minecraft:goat",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": -0.3
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_taiga.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_taiga.json
new file mode 100644
index 0000000000..7930c07be2
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/snowy_taiga.json
@@ -0,0 +1,149 @@
+{
+ "carvers": "#minecraft:in_biome/snowy_taiga",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8625919,
+ "water_color": 4020182,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/snowy_taiga",
+ "#minecraft:lakes/in_biome/snowy_taiga",
+ "#minecraft:local_modifications/in_biome/snowy_taiga",
+ "#minecraft:underground_structures/in_biome/snowy_taiga",
+ "#minecraft:surface_structures/in_biome/snowy_taiga",
+ "#minecraft:strongholds/in_biome/snowy_taiga",
+ "#minecraft:underground_ores/in_biome/snowy_taiga",
+ "#minecraft:underground_decoration/in_biome/snowy_taiga",
+ "#minecraft:fluid_springs/in_biome/snowy_taiga",
+ "#minecraft:vegetal_decoration/in_biome/snowy_taiga",
+ "#minecraft:top_layer_modification/in_biome/snowy_taiga"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ },
+ {
+ "type": "minecraft:fox",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": -0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/soul_sand_valley.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/soul_sand_valley.json
new file mode 100644
index 0000000000..90efdd143e
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/soul_sand_valley.json
@@ -0,0 +1,108 @@
+{
+ "carvers": "#minecraft:in_biome/soul_sand_valley",
+ "downfall": 0.0,
+ "effects": {
+ "additions_sound": {
+ "sound": "minecraft:ambient.soul_sand_valley.additions",
+ "tick_chance": 0.0111
+ },
+ "ambient_sound": "minecraft:ambient.soul_sand_valley.loop",
+ "fog_color": 1787717,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.soul_sand_valley.mood",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.nether.soul_sand_valley"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "particle": {
+ "options": {
+ "type": "minecraft:ash"
+ },
+ "probability": 0.00625
+ },
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/soul_sand_valley",
+ "#minecraft:lakes/in_biome/soul_sand_valley",
+ "#minecraft:local_modifications/in_biome/soul_sand_valley",
+ "#minecraft:underground_structures/in_biome/soul_sand_valley",
+ "#minecraft:surface_structures/in_biome/soul_sand_valley",
+ "#minecraft:strongholds/in_biome/soul_sand_valley",
+ "#minecraft:underground_ores/in_biome/soul_sand_valley",
+ "#minecraft:underground_decoration/in_biome/soul_sand_valley",
+ "#minecraft:fluid_springs/in_biome/soul_sand_valley",
+ "#minecraft:vegetal_decoration/in_biome/soul_sand_valley",
+ "#minecraft:top_layer_modification/in_biome/soul_sand_valley"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {
+ "minecraft:enderman": {
+ "charge": 0.7,
+ "energy_budget": 0.15
+ },
+ "minecraft:ghast": {
+ "charge": 0.7,
+ "energy_budget": 0.15
+ },
+ "minecraft:skeleton": {
+ "charge": 0.7,
+ "energy_budget": 0.15
+ },
+ "minecraft:strider": {
+ "charge": 0.7,
+ "energy_budget": 0.15
+ }
+ },
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:strider",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 60
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 5,
+ "minCount": 5,
+ "weight": 20
+ },
+ {
+ "type": "minecraft:ghast",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 50
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 1
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sparse_jungle.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sparse_jungle.json
new file mode 100644
index 0000000000..c616dadfee
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sparse_jungle.json
@@ -0,0 +1,154 @@
+{
+ "carvers": "#minecraft:in_biome/sparse_jungle",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.sparse_jungle"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7842047,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/sparse_jungle",
+ "#minecraft:lakes/in_biome/sparse_jungle",
+ "#minecraft:local_modifications/in_biome/sparse_jungle",
+ "#minecraft:underground_structures/in_biome/sparse_jungle",
+ "#minecraft:surface_structures/in_biome/sparse_jungle",
+ "#minecraft:strongholds/in_biome/sparse_jungle",
+ "#minecraft:underground_ores/in_biome/sparse_jungle",
+ "#minecraft:underground_decoration/in_biome/sparse_jungle",
+ "#minecraft:fluid_springs/in_biome/sparse_jungle",
+ "#minecraft:vegetal_decoration/in_biome/sparse_jungle",
+ "#minecraft:top_layer_modification/in_biome/sparse_jungle"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.95
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_peaks.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_peaks.json
new file mode 100644
index 0000000000..83fe9384ac
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_peaks.json
@@ -0,0 +1,117 @@
+{
+ "carvers": "#minecraft:in_biome/stony_peaks",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.stony_peaks"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7776511,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/stony_peaks",
+ "#minecraft:lakes/in_biome/stony_peaks",
+ "#minecraft:local_modifications/in_biome/stony_peaks",
+ "#minecraft:underground_structures/in_biome/stony_peaks",
+ "#minecraft:surface_structures/in_biome/stony_peaks",
+ "#minecraft:strongholds/in_biome/stony_peaks",
+ "#minecraft:underground_ores/in_biome/stony_peaks",
+ "#minecraft:underground_decoration/in_biome/stony_peaks",
+ "#minecraft:fluid_springs/in_biome/stony_peaks",
+ "#minecraft:vegetal_decoration/in_biome/stony_peaks",
+ "#minecraft:top_layer_modification/in_biome/stony_peaks"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 1.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_shore.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_shore.json
new file mode 100644
index 0000000000..45cb9a94cf
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/stony_shore.json
@@ -0,0 +1,106 @@
+{
+ "carvers": "#minecraft:in_biome/stony_shore",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8233727,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/stony_shore",
+ "#minecraft:lakes/in_biome/stony_shore",
+ "#minecraft:local_modifications/in_biome/stony_shore",
+ "#minecraft:underground_structures/in_biome/stony_shore",
+ "#minecraft:surface_structures/in_biome/stony_shore",
+ "#minecraft:strongholds/in_biome/stony_shore",
+ "#minecraft:underground_ores/in_biome/stony_shore",
+ "#minecraft:underground_decoration/in_biome/stony_shore",
+ "#minecraft:fluid_springs/in_biome/stony_shore",
+ "#minecraft:vegetal_decoration/in_biome/stony_shore",
+ "#minecraft:top_layer_modification/in_biome/stony_shore"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.2
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sunflower_plains.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sunflower_plains.json
new file mode 100644
index 0000000000..a295d2aabb
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/sunflower_plains.json
@@ -0,0 +1,143 @@
+{
+ "carvers": "#minecraft:in_biome/sunflower_plains",
+ "downfall": 0.4,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/sunflower_plains",
+ "#minecraft:lakes/in_biome/sunflower_plains",
+ "#minecraft:local_modifications/in_biome/sunflower_plains",
+ "#minecraft:underground_structures/in_biome/sunflower_plains",
+ "#minecraft:surface_structures/in_biome/sunflower_plains",
+ "#minecraft:strongholds/in_biome/sunflower_plains",
+ "#minecraft:underground_ores/in_biome/sunflower_plains",
+ "#minecraft:underground_decoration/in_biome/sunflower_plains",
+ "#minecraft:fluid_springs/in_biome/sunflower_plains",
+ "#minecraft:vegetal_decoration/in_biome/sunflower_plains",
+ "#minecraft:top_layer_modification/in_biome/sunflower_plains"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:horse",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 1
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/swamp.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/swamp.json
new file mode 100644
index 0000000000..2d4aedf830
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/swamp.json
@@ -0,0 +1,163 @@
+{
+ "carvers": "#minecraft:in_biome/swamp",
+ "downfall": 0.9,
+ "effects": {
+ "dry_foliage_color": 8082228,
+ "fog_color": 12638463,
+ "foliage_color": 6975545,
+ "grass_color_modifier": "swamp",
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.swamp"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7907327,
+ "water_color": 6388580,
+ "water_fog_color": 2302743
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/swamp",
+ "#minecraft:lakes/in_biome/swamp",
+ "#minecraft:local_modifications/in_biome/swamp",
+ "#minecraft:underground_structures/in_biome/swamp",
+ "#minecraft:surface_structures/in_biome/swamp",
+ "#minecraft:strongholds/in_biome/swamp",
+ "#minecraft:underground_ores/in_biome/swamp",
+ "#minecraft:underground_decoration/in_biome/swamp",
+ "#minecraft:fluid_springs/in_biome/swamp",
+ "#minecraft:vegetal_decoration/in_biome/swamp",
+ "#minecraft:top_layer_modification/in_biome/swamp"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:frog",
+ "maxCount": 5,
+ "minCount": 2,
+ "weight": 10
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 70
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:bogged",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 30
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.8
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/taiga.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/taiga.json
new file mode 100644
index 0000000000..2e531498f8
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/taiga.json
@@ -0,0 +1,149 @@
+{
+ "carvers": "#minecraft:in_biome/taiga",
+ "downfall": 0.8,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8233983,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/taiga",
+ "#minecraft:lakes/in_biome/taiga",
+ "#minecraft:local_modifications/in_biome/taiga",
+ "#minecraft:underground_structures/in_biome/taiga",
+ "#minecraft:surface_structures/in_biome/taiga",
+ "#minecraft:strongholds/in_biome/taiga",
+ "#minecraft:underground_ores/in_biome/taiga",
+ "#minecraft:underground_decoration/in_biome/taiga",
+ "#minecraft:fluid_springs/in_biome/taiga",
+ "#minecraft:vegetal_decoration/in_biome/taiga",
+ "#minecraft:top_layer_modification/in_biome/taiga"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:rabbit",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 4
+ },
+ {
+ "type": "minecraft:fox",
+ "maxCount": 4,
+ "minCount": 2,
+ "weight": 8
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.25
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_end.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_end.json
new file mode 100644
index 0000000000..ef95b942e0
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_end.json
@@ -0,0 +1,50 @@
+{
+ "carvers": "#minecraft:in_biome/the_end",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 10518688,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 0,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/the_end",
+ "#minecraft:lakes/in_biome/the_end",
+ "#minecraft:local_modifications/in_biome/the_end",
+ "#minecraft:underground_structures/in_biome/the_end",
+ "#minecraft:surface_structures/in_biome/the_end",
+ "#minecraft:strongholds/in_biome/the_end",
+ "#minecraft:underground_ores/in_biome/the_end",
+ "#minecraft:underground_decoration/in_biome/the_end",
+ "#minecraft:fluid_springs/in_biome/the_end",
+ "#minecraft:vegetal_decoration/in_biome/the_end",
+ "#minecraft:top_layer_modification/in_biome/the_end"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_void.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_void.json
new file mode 100644
index 0000000000..1a601e25a1
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/the_void.json
@@ -0,0 +1,43 @@
+{
+ "carvers": "#minecraft:in_biome/the_void",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/the_void",
+ "#minecraft:lakes/in_biome/the_void",
+ "#minecraft:local_modifications/in_biome/the_void",
+ "#minecraft:underground_structures/in_biome/the_void",
+ "#minecraft:surface_structures/in_biome/the_void",
+ "#minecraft:strongholds/in_biome/the_void",
+ "#minecraft:underground_ores/in_biome/the_void",
+ "#minecraft:underground_decoration/in_biome/the_void",
+ "#minecraft:fluid_springs/in_biome/the_void",
+ "#minecraft:vegetal_decoration/in_biome/the_void",
+ "#minecraft:top_layer_modification/in_biome/the_void"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warm_ocean.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warm_ocean.json
new file mode 100644
index 0000000000..ea6da2bc45
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warm_ocean.json
@@ -0,0 +1,138 @@
+{
+ "carvers": "#minecraft:in_biome/warm_ocean",
+ "downfall": 0.5,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8103167,
+ "water_color": 4445678,
+ "water_fog_color": 270131
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/warm_ocean",
+ "#minecraft:lakes/in_biome/warm_ocean",
+ "#minecraft:local_modifications/in_biome/warm_ocean",
+ "#minecraft:underground_structures/in_biome/warm_ocean",
+ "#minecraft:surface_structures/in_biome/warm_ocean",
+ "#minecraft:strongholds/in_biome/warm_ocean",
+ "#minecraft:underground_ores/in_biome/warm_ocean",
+ "#minecraft:underground_decoration/in_biome/warm_ocean",
+ "#minecraft:fluid_springs/in_biome/warm_ocean",
+ "#minecraft:vegetal_decoration/in_biome/warm_ocean",
+ "#minecraft:top_layer_modification/in_biome/warm_ocean"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:drowned",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [
+ {
+ "type": "minecraft:pufferfish",
+ "maxCount": 3,
+ "minCount": 1,
+ "weight": 15
+ },
+ {
+ "type": "minecraft:tropical_fish",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 25
+ }
+ ],
+ "water_creature": [
+ {
+ "type": "minecraft:squid",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:dolphin",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 2
+ }
+ ]
+ },
+ "temperature": 0.5
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warped_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warped_forest.json
new file mode 100644
index 0000000000..231225af2d
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/warped_forest.json
@@ -0,0 +1,84 @@
+{
+ "carvers": "#minecraft:in_biome/warped_forest",
+ "downfall": 0.0,
+ "effects": {
+ "additions_sound": {
+ "sound": "minecraft:ambient.warped_forest.additions",
+ "tick_chance": 0.0111
+ },
+ "ambient_sound": "minecraft:ambient.warped_forest.loop",
+ "fog_color": 1705242,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.warped_forest.mood",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.nether.warped_forest"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "particle": {
+ "options": {
+ "type": "minecraft:warped_spore"
+ },
+ "probability": 0.01428
+ },
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/warped_forest",
+ "#minecraft:lakes/in_biome/warped_forest",
+ "#minecraft:local_modifications/in_biome/warped_forest",
+ "#minecraft:underground_structures/in_biome/warped_forest",
+ "#minecraft:surface_structures/in_biome/warped_forest",
+ "#minecraft:strongholds/in_biome/warped_forest",
+ "#minecraft:underground_ores/in_biome/warped_forest",
+ "#minecraft:underground_decoration/in_biome/warped_forest",
+ "#minecraft:fluid_springs/in_biome/warped_forest",
+ "#minecraft:vegetal_decoration/in_biome/warped_forest",
+ "#minecraft:top_layer_modification/in_biome/warped_forest"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {
+ "minecraft:enderman": {
+ "charge": 1.0,
+ "energy_budget": 0.12
+ }
+ },
+ "spawners": {
+ "ambient": [],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:strider",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 60
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 1
+ }
+ ],
+ "underground_water_creature": [],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_forest.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_forest.json
new file mode 100644
index 0000000000..02b614667b
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_forest.json
@@ -0,0 +1,137 @@
+{
+ "carvers": "#minecraft:in_biome/windswept_forest",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8233727,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/windswept_forest",
+ "#minecraft:lakes/in_biome/windswept_forest",
+ "#minecraft:local_modifications/in_biome/windswept_forest",
+ "#minecraft:underground_structures/in_biome/windswept_forest",
+ "#minecraft:surface_structures/in_biome/windswept_forest",
+ "#minecraft:strongholds/in_biome/windswept_forest",
+ "#minecraft:underground_ores/in_biome/windswept_forest",
+ "#minecraft:underground_decoration/in_biome/windswept_forest",
+ "#minecraft:fluid_springs/in_biome/windswept_forest",
+ "#minecraft:vegetal_decoration/in_biome/windswept_forest",
+ "#minecraft:top_layer_modification/in_biome/windswept_forest"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:llama",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.2
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_gravelly_hills.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_gravelly_hills.json
new file mode 100644
index 0000000000..02f1c27e6d
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_gravelly_hills.json
@@ -0,0 +1,137 @@
+{
+ "carvers": "#minecraft:in_biome/windswept_gravelly_hills",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8233727,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/windswept_gravelly_hills",
+ "#minecraft:lakes/in_biome/windswept_gravelly_hills",
+ "#minecraft:local_modifications/in_biome/windswept_gravelly_hills",
+ "#minecraft:underground_structures/in_biome/windswept_gravelly_hills",
+ "#minecraft:surface_structures/in_biome/windswept_gravelly_hills",
+ "#minecraft:strongholds/in_biome/windswept_gravelly_hills",
+ "#minecraft:underground_ores/in_biome/windswept_gravelly_hills",
+ "#minecraft:underground_decoration/in_biome/windswept_gravelly_hills",
+ "#minecraft:fluid_springs/in_biome/windswept_gravelly_hills",
+ "#minecraft:vegetal_decoration/in_biome/windswept_gravelly_hills",
+ "#minecraft:top_layer_modification/in_biome/windswept_gravelly_hills"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:llama",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.2
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_hills.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_hills.json
new file mode 100644
index 0000000000..b4fff701c8
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_hills.json
@@ -0,0 +1,137 @@
+{
+ "carvers": "#minecraft:in_biome/windswept_hills",
+ "downfall": 0.3,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 8233727,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/windswept_hills",
+ "#minecraft:lakes/in_biome/windswept_hills",
+ "#minecraft:local_modifications/in_biome/windswept_hills",
+ "#minecraft:underground_structures/in_biome/windswept_hills",
+ "#minecraft:surface_structures/in_biome/windswept_hills",
+ "#minecraft:strongholds/in_biome/windswept_hills",
+ "#minecraft:underground_ores/in_biome/windswept_hills",
+ "#minecraft:underground_decoration/in_biome/windswept_hills",
+ "#minecraft:fluid_springs/in_biome/windswept_hills",
+ "#minecraft:vegetal_decoration/in_biome/windswept_hills",
+ "#minecraft:top_layer_modification/in_biome/windswept_hills"
+ ],
+ "has_precipitation": true,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:llama",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 5
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 0.2
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_savanna.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_savanna.json
new file mode 100644
index 0000000000..7573aa3211
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/windswept_savanna.json
@@ -0,0 +1,149 @@
+{
+ "carvers": "#minecraft:in_biome/windswept_savanna",
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/windswept_savanna",
+ "#minecraft:lakes/in_biome/windswept_savanna",
+ "#minecraft:local_modifications/in_biome/windswept_savanna",
+ "#minecraft:underground_structures/in_biome/windswept_savanna",
+ "#minecraft:surface_structures/in_biome/windswept_savanna",
+ "#minecraft:strongholds/in_biome/windswept_savanna",
+ "#minecraft:underground_ores/in_biome/windswept_savanna",
+ "#minecraft:underground_decoration/in_biome/windswept_savanna",
+ "#minecraft:fluid_springs/in_biome/windswept_savanna",
+ "#minecraft:vegetal_decoration/in_biome/windswept_savanna",
+ "#minecraft:top_layer_modification/in_biome/windswept_savanna"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:horse",
+ "maxCount": 6,
+ "minCount": 2,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:donkey",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 1
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 3,
+ "minCount": 2,
+ "weight": 10
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/wooded_badlands.json b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/wooded_badlands.json
new file mode 100644
index 0000000000..19b1dd0313
--- /dev/null
+++ b/pfb_biome_extensions/backport_88/data/minecraft/worldgen/biome/wooded_badlands.json
@@ -0,0 +1,157 @@
+{
+ "carvers": "#minecraft:in_biome/wooded_badlands",
+ "creature_spawn_probability": 0.04,
+ "downfall": 0.0,
+ "effects": {
+ "fog_color": 12638463,
+ "foliage_color": 10387789,
+ "grass_color": 9470285,
+ "mood_sound": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.cave",
+ "tick_delay": 6000
+ },
+ "music": [
+ {
+ "data": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "replace_current_music": false,
+ "sound": "minecraft:music.overworld.badlands"
+ },
+ "weight": 1
+ }
+ ],
+ "music_volume": 1.0,
+ "sky_color": 7254527,
+ "water_color": 4159204,
+ "water_fog_color": 329011
+ },
+ "features": [
+ "#minecraft:raw_generation/in_biome/wooded_badlands",
+ "#minecraft:lakes/in_biome/wooded_badlands",
+ "#minecraft:local_modifications/in_biome/wooded_badlands",
+ "#minecraft:underground_structures/in_biome/wooded_badlands",
+ "#minecraft:surface_structures/in_biome/wooded_badlands",
+ "#minecraft:strongholds/in_biome/wooded_badlands",
+ "#minecraft:underground_ores/in_biome/wooded_badlands",
+ "#minecraft:underground_decoration/in_biome/wooded_badlands",
+ "#minecraft:fluid_springs/in_biome/wooded_badlands",
+ "#minecraft:vegetal_decoration/in_biome/wooded_badlands",
+ "#minecraft:top_layer_modification/in_biome/wooded_badlands"
+ ],
+ "has_precipitation": false,
+ "spawn_costs": {},
+ "spawners": {
+ "ambient": [
+ {
+ "type": "minecraft:bat",
+ "maxCount": 8,
+ "minCount": 8,
+ "weight": 10
+ }
+ ],
+ "axolotls": [],
+ "creature": [
+ {
+ "type": "minecraft:sheep",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 12
+ },
+ {
+ "type": "minecraft:pig",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:chicken",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:cow",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 8
+ },
+ {
+ "type": "minecraft:armadillo",
+ "maxCount": 2,
+ "minCount": 1,
+ "weight": 6
+ },
+ {
+ "type": "minecraft:wolf",
+ "maxCount": 8,
+ "minCount": 4,
+ "weight": 2
+ }
+ ],
+ "misc": [],
+ "monster": [
+ {
+ "type": "minecraft:spider",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:zombie",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 95
+ },
+ {
+ "type": "minecraft:zombie_villager",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
+ {
+ "type": "minecraft:skeleton",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:creeper",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:slime",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 100
+ },
+ {
+ "type": "minecraft:enderman",
+ "maxCount": 4,
+ "minCount": 1,
+ "weight": 10
+ },
+ {
+ "type": "minecraft:witch",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ }
+ ],
+ "underground_water_creature": [
+ {
+ "type": "minecraft:glow_squid",
+ "maxCount": 6,
+ "minCount": 4,
+ "weight": 10
+ }
+ ],
+ "water_ambient": [],
+ "water_creature": []
+ },
+ "temperature": 2.0
+}
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/badlands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/badlands.json
index f0fc8e318d..613f5762fb 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/badlands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/badlands.json
@@ -1,32 +1,22 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.badlands"
+ }
+ },
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/badlands",
"creature_spawn_probability": 0.03,
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "foliage_color": 10387789,
- "grass_color": 9470285,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.badlands"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "foliage_color": "#9e814d",
+ "grass_color": "#90814d",
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/badlands",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/bamboo_jungle.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/bamboo_jungle.json
index e7f1a262a6..0d530302bc 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/bamboo_jungle.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/bamboo_jungle.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.bamboo_jungle"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#77a8ff"
+ },
"carvers": "#minecraft:in_biome/bamboo_jungle",
"downfall": 0.9,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.bamboo_jungle"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7842047,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/bamboo_jungle",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/basalt_deltas.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/basalt_deltas.json
index d08eb025fd..ca35c1328a 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/basalt_deltas.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/basalt_deltas.json
@@ -1,40 +1,39 @@
{
- "carvers": "#minecraft:in_biome/basalt_deltas",
- "downfall": 0.0,
- "effects": {
- "additions_sound": {
- "sound": "minecraft:ambient.basalt_deltas.additions",
- "tick_chance": 0.0111
+ "attributes": {
+ "minecraft:audio/ambient_sounds": {
+ "additions": {
+ "sound": "minecraft:ambient.basalt_deltas.additions",
+ "tick_chance": 0.0111
+ },
+ "loop": "minecraft:ambient.basalt_deltas.loop",
+ "mood": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.basalt_deltas.mood",
+ "tick_delay": 6000
+ }
},
- "ambient_sound": "minecraft:ambient.basalt_deltas.loop",
- "fog_color": 6840176,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.basalt_deltas.mood",
- "tick_delay": 6000
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.nether.basalt_deltas"
+ }
},
- "music": [
+ "minecraft:visual/ambient_particles": [
{
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.nether.basalt_deltas"
+ "particle": {
+ "type": "minecraft:white_ash"
},
- "weight": 1
+ "probability": 0.118093334
}
],
- "music_volume": 1.0,
- "particle": {
- "options": {
- "type": "minecraft:white_ash"
- },
- "probability": 0.118093334
- },
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "minecraft:visual/fog_color": "#685f70"
+ },
+ "carvers": "#minecraft:in_biome/basalt_deltas",
+ "downfall": 0.0,
+ "effects": {
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/basalt_deltas",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/beach.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/beach.json
index 172f115cbd..8afcb522d4 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/beach.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/beach.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#78a7ff"
+ },
"carvers": "#minecraft:in_biome/beach",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/beach",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/birch_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/birch_forest.json
index 44c5a15db7..1e1085509c 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/birch_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/birch_forest.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.forest"
+ }
+ },
+ "minecraft:visual/sky_color": "#7aa5ff"
+ },
"carvers": "#minecraft:in_biome/birch_forest",
"downfall": 0.6,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.forest"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8037887,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/birch_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/cherry_grove.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/cherry_grove.json
index b89b4c3eff..a639aef8f5 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/cherry_grove.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/cherry_grove.json
@@ -1,31 +1,21 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.cherry_grove"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff",
+ "minecraft:visual/water_fog_color": "#5db7ef"
+ },
"carvers": "#minecraft:in_biome/cherry_grove",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "foliage_color": 11983713,
- "grass_color": 11983713,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.cherry_grove"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 6141935,
- "water_fog_color": 6141935
+ "foliage_color": "#b6db61",
+ "grass_color": "#b6db61",
+ "water_color": "#5db7ef"
},
"features": [
"#minecraft:raw_generation/in_biome/cherry_grove",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/cold_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/cold_ocean.json
index 29b02227e6..d343f9457f 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/cold_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/cold_ocean.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/cold_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4020182,
- "water_fog_color": 329011
+ "water_color": "#3d57d6"
},
"features": [
"#minecraft:raw_generation/in_biome/cold_ocean",
@@ -125,6 +135,12 @@
"maxCount": 4,
"minCount": 1,
"weight": 3
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 2
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/crimson_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/crimson_forest.json
index d5e64cc99b..e3789f829e 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/crimson_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/crimson_forest.json
@@ -1,40 +1,39 @@
{
- "carvers": "#minecraft:in_biome/crimson_forest",
- "downfall": 0.0,
- "effects": {
- "additions_sound": {
- "sound": "minecraft:ambient.crimson_forest.additions",
- "tick_chance": 0.0111
+ "attributes": {
+ "minecraft:audio/ambient_sounds": {
+ "additions": {
+ "sound": "minecraft:ambient.crimson_forest.additions",
+ "tick_chance": 0.0111
+ },
+ "loop": "minecraft:ambient.crimson_forest.loop",
+ "mood": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.crimson_forest.mood",
+ "tick_delay": 6000
+ }
},
- "ambient_sound": "minecraft:ambient.crimson_forest.loop",
- "fog_color": 3343107,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.crimson_forest.mood",
- "tick_delay": 6000
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.nether.crimson_forest"
+ }
},
- "music": [
+ "minecraft:visual/ambient_particles": [
{
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.nether.crimson_forest"
+ "particle": {
+ "type": "minecraft:crimson_spore"
},
- "weight": 1
+ "probability": 0.025
}
],
- "music_volume": 1.0,
- "particle": {
- "options": {
- "type": "minecraft:crimson_spore"
- },
- "probability": 0.025
- },
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "minecraft:visual/fog_color": "#330303"
+ },
+ "carvers": "#minecraft:in_biome/crimson_forest",
+ "downfall": 0.0,
+ "effects": {
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/crimson_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/dark_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/dark_forest.json
index 2f3b8e4346..7d756e9864 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/dark_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/dark_forest.json
@@ -1,31 +1,20 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.forest"
+ }
+ },
+ "minecraft:visual/sky_color": "#79a6ff"
+ },
"carvers": "#minecraft:in_biome/dark_forest",
"downfall": 0.8,
"effects": {
- "dry_foliage_color": 8082228,
- "fog_color": 12638463,
+ "dry_foliage_color": "#7b5334",
"grass_color_modifier": "dark_forest",
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.forest"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7972607,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/dark_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_cold_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_cold_ocean.json
index 1111e28903..7246ce543d 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_cold_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_cold_ocean.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/deep_cold_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4020182,
- "water_fog_color": 329011
+ "water_color": "#3d57d6"
},
"features": [
"#minecraft:raw_generation/in_biome/deep_cold_ocean",
@@ -125,6 +135,12 @@
"maxCount": 4,
"minCount": 1,
"weight": 3
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 2
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_dark.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_dark.json
index 6115364853..2588a77522 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_dark.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_dark.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.deep_dark"
+ }
+ },
+ "minecraft:visual/sky_color": "#78a7ff"
+ },
"carvers": "#minecraft:in_biome/deep_dark",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.deep_dark"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/deep_dark",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_frozen_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_frozen_ocean.json
index 07e42a81af..b4a48fe182 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_frozen_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_frozen_ocean.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/deep_frozen_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 3750089,
- "water_fog_color": 329011
+ "water_color": "#3938c9"
},
"features": [
"#minecraft:raw_generation/in_biome/deep_frozen_ocean",
@@ -126,6 +119,12 @@
"maxCount": 4,
"minCount": 1,
"weight": 1
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 2
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json
index 50ae6f73a0..d9edaa7980 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_lukewarm_ocean.json
@@ -1,18 +1,29 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff",
+ "minecraft:visual/water_fog_color": "#041633"
+ },
"carvers": "#minecraft:in_biome/deep_lukewarm_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4566514,
- "water_fog_color": 267827
+ "water_color": "#45adf2"
},
"features": [
"#minecraft:raw_generation/in_biome/deep_lukewarm_ocean",
@@ -137,6 +148,12 @@
"maxCount": 2,
"minCount": 1,
"weight": 2
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_ocean.json
index 9910217bdb..9e7de747df 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/deep_ocean.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/deep_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/deep_ocean",
@@ -125,6 +135,12 @@
"maxCount": 2,
"minCount": 1,
"weight": 1
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/desert.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/desert.json
index ce71f44e9d..b3ae069025 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/desert.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/desert.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.desert"
+ }
+ },
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/desert",
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.desert"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/desert",
@@ -88,7 +78,7 @@
"type": "minecraft:skeleton",
"maxCount": 4,
"minCount": 4,
- "weight": 100
+ "weight": 50
},
{
"type": "minecraft:creeper",
@@ -119,6 +109,12 @@
"maxCount": 4,
"minCount": 4,
"weight": 80
+ },
+ {
+ "type": "minecraft:parched",
+ "maxCount": 4,
+ "minCount": 4,
+ "weight": 50
}
],
"underground_water_creature": [
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/dripstone_caves.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/dripstone_caves.json
index 4d29662165..21e2ad82cf 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/dripstone_caves.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/dripstone_caves.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.dripstone_caves"
+ }
+ },
+ "minecraft:visual/sky_color": "#78a7ff"
+ },
"carvers": "#minecraft:in_biome/dripstone_caves",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.dripstone_caves"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/dripstone_caves",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_barrens.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_barrens.json
index 54868f9838..12d4fd021f 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_barrens.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_barrens.json
@@ -2,17 +2,7 @@
"carvers": "#minecraft:in_biome/end_barrens",
"downfall": 0.5,
"effects": {
- "fog_color": 10518688,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 0,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/end_barrens",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_highlands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_highlands.json
index 6fc918fd76..e5c22253c5 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_highlands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_highlands.json
@@ -2,17 +2,7 @@
"carvers": "#minecraft:in_biome/end_highlands",
"downfall": 0.5,
"effects": {
- "fog_color": 10518688,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 0,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/end_highlands",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_midlands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_midlands.json
index 0567ffb6bf..7e55203d7e 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/end_midlands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/end_midlands.json
@@ -2,17 +2,7 @@
"carvers": "#minecraft:in_biome/end_midlands",
"downfall": 0.5,
"effects": {
- "fog_color": 10518688,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 0,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/end_midlands",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/eroded_badlands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/eroded_badlands.json
index 4059ab97c3..4800000a10 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/eroded_badlands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/eroded_badlands.json
@@ -1,32 +1,22 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.badlands"
+ }
+ },
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/eroded_badlands",
"creature_spawn_probability": 0.03,
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "foliage_color": 10387789,
- "grass_color": 9470285,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.badlands"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "foliage_color": "#9e814d",
+ "grass_color": "#90814d",
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/eroded_badlands",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/flower_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/flower_forest.json
index cff2119f7a..beb0c8c914 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/flower_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/flower_forest.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.flower_forest"
+ }
+ },
+ "minecraft:visual/sky_color": "#79a6ff"
+ },
"carvers": "#minecraft:in_biome/flower_forest",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.flower_forest"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7972607,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/flower_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/forest.json
index 259ea80bac..8a8b5f0cfe 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/forest.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.forest"
+ }
+ },
+ "minecraft:visual/sky_color": "#79a6ff"
+ },
"carvers": "#minecraft:in_biome/forest",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.forest"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7972607,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_ocean.json
index 6924270d4e..1a7e53d0c6 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_ocean.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7fa1ff"
+ },
"carvers": "#minecraft:in_biome/frozen_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8364543,
- "water_color": 3750089,
- "water_fog_color": 329011
+ "water_color": "#3938c9"
},
"features": [
"#minecraft:raw_generation/in_biome/frozen_ocean",
@@ -126,6 +119,12 @@
"maxCount": 4,
"minCount": 1,
"weight": 1
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 2
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_peaks.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_peaks.json
index 57e79f23d5..7577309689 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_peaks.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_peaks.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.frozen_peaks"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#859dff"
+ },
"carvers": "#minecraft:in_biome/frozen_peaks",
"downfall": 0.9,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.frozen_peaks"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8756735,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/frozen_peaks",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_river.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_river.json
index e6e90f4f25..3ad19b2e05 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_river.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/frozen_river.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7fa1ff"
+ },
"carvers": "#minecraft:in_biome/frozen_river",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8364543,
- "water_color": 3750089,
- "water_fog_color": 329011
+ "water_color": "#3938c9"
},
"features": [
"#minecraft:raw_generation/in_biome/frozen_river",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/grove.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/grove.json
index a4ad47fc4c..9bc54b91ae 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/grove.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/grove.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.grove"
+ }
+ },
+ "minecraft:visual/sky_color": "#81a0ff"
+ },
"carvers": "#minecraft:in_biome/grove",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.grove"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8495359,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/grove",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/ice_spikes.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/ice_spikes.json
index 7efe4494c8..67d7f11c5f 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/ice_spikes.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/ice_spikes.json
@@ -1,19 +1,12 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7fa1ff"
+ },
"carvers": "#minecraft:in_biome/ice_spikes",
"creature_spawn_probability": 0.07,
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8364543,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/ice_spikes",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/jagged_peaks.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/jagged_peaks.json
index 3f64bba000..54f46a0233 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/jagged_peaks.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/jagged_peaks.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.jagged_peaks"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#859dff"
+ },
"carvers": "#minecraft:in_biome/jagged_peaks",
"downfall": 0.9,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.jagged_peaks"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8756735,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/jagged_peaks",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/jungle.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/jungle.json
index dda810da19..0bf5814dec 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/jungle.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/jungle.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.jungle"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#77a8ff"
+ },
"carvers": "#minecraft:in_biome/jungle",
"downfall": 0.9,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.jungle"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7842047,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/jungle",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/lukewarm_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/lukewarm_ocean.json
index 09fe106eba..2e1179ec5c 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/lukewarm_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/lukewarm_ocean.json
@@ -1,18 +1,29 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff",
+ "minecraft:visual/water_fog_color": "#041633"
+ },
"carvers": "#minecraft:in_biome/lukewarm_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4566514,
- "water_fog_color": 267827
+ "water_color": "#45adf2"
},
"features": [
"#minecraft:raw_generation/in_biome/lukewarm_ocean",
@@ -137,6 +148,12 @@
"maxCount": 2,
"minCount": 1,
"weight": 2
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/lush_caves.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/lush_caves.json
index 8854da513e..5a376adc68 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/lush_caves.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/lush_caves.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.lush_caves"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/lush_caves",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.lush_caves"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/lush_caves",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/mangrove_swamp.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/mangrove_swamp.json
index 8a36659c81..cdccaee44f 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/mangrove_swamp.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/mangrove_swamp.json
@@ -1,32 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.swamp"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/fog_color": "#c0d8ff",
+ "minecraft:visual/sky_color": "#78a7ff",
+ "minecraft:visual/water_fog_color": "#4d7a60",
+ "minecraft:visual/water_fog_end_distance": {
+ "argument": 0.85,
+ "modifier": "multiply"
+ }
+ },
"carvers": "#minecraft:in_biome/mangrove_swamp",
"downfall": 0.9,
"effects": {
- "dry_foliage_color": 8082228,
- "fog_color": 12638463,
- "foliage_color": 9285927,
+ "dry_foliage_color": "#7b5334",
+ "foliage_color": "#8db127",
"grass_color_modifier": "swamp",
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.swamp"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 3832426,
- "water_fog_color": 5077600
+ "water_color": "#3a7a6a"
},
"features": [
"#minecraft:raw_generation/in_biome/mangrove_swamp",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/meadow.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/meadow.json
index 200468a137..b63aad2fc1 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/meadow.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/meadow.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.meadow"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/meadow",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.meadow"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 937679,
- "water_fog_color": 329011
+ "water_color": "#0e4ecf"
},
"features": [
"#minecraft:raw_generation/in_biome/meadow",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/mushroom_fields.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/mushroom_fields.json
index b9368a9c8c..a13e00e98d 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/mushroom_fields.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/mushroom_fields.json
@@ -1,18 +1,13 @@
{
+ "attributes": {
+ "minecraft:gameplay/can_pillager_patrol_spawn": false,
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#77a8ff"
+ },
"carvers": "#minecraft:in_biome/mushroom_fields",
"downfall": 1.0,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7842047,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/mushroom_fields",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/nether_wastes.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/nether_wastes.json
index 1af0667226..e0e71e1cd3 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/nether_wastes.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/nether_wastes.json
@@ -1,34 +1,31 @@
{
+ "attributes": {
+ "minecraft:audio/ambient_sounds": {
+ "additions": {
+ "sound": "minecraft:ambient.nether_wastes.additions",
+ "tick_chance": 0.0111
+ },
+ "loop": "minecraft:ambient.nether_wastes.loop",
+ "mood": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.nether_wastes.mood",
+ "tick_delay": 6000
+ }
+ },
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.nether.nether_wastes"
+ }
+ },
+ "minecraft:visual/fog_color": "#330808"
+ },
"carvers": "#minecraft:in_biome/nether_wastes",
"downfall": 0.0,
"effects": {
- "additions_sound": {
- "sound": "minecraft:ambient.nether_wastes.additions",
- "tick_chance": 0.0111
- },
- "ambient_sound": "minecraft:ambient.nether_wastes.loop",
- "fog_color": 3344392,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.nether_wastes.mood",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.nether.nether_wastes"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/nether_wastes",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/ocean.json
index cf5b1995a3..cff8f4e5cd 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/ocean.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/ocean",
@@ -125,6 +135,12 @@
"maxCount": 2,
"minCount": 1,
"weight": 1
+ },
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
}
]
},
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_birch_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_birch_forest.json
index 18806e6ae4..148312370b 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_birch_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_birch_forest.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.forest"
+ }
+ },
+ "minecraft:visual/sky_color": "#7aa5ff"
+ },
"carvers": "#minecraft:in_biome/old_growth_birch_forest",
"downfall": 0.6,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.forest"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8037887,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/old_growth_birch_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_pine_taiga.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_pine_taiga.json
index 0cf87db88b..b042e3ac80 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_pine_taiga.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_pine_taiga.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.old_growth_taiga"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ca3ff"
+ },
"carvers": "#minecraft:in_biome/old_growth_pine_taiga",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.old_growth_taiga"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8168447,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/old_growth_pine_taiga",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json
index 9a0e247dcc..de53b82c30 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/old_growth_spruce_taiga.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.old_growth_taiga"
+ }
+ },
+ "minecraft:visual/sky_color": "#7da3ff"
+ },
"carvers": "#minecraft:in_biome/old_growth_spruce_taiga",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.old_growth_taiga"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8233983,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/old_growth_spruce_taiga",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/pale_garden.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/pale_garden.json
index dba07f900e..301f133875 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/pale_garden.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/pale_garden.json
@@ -1,22 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {},
+ "minecraft:audio/music_volume": 0.0,
+ "minecraft:visual/fog_color": "#817770",
+ "minecraft:visual/sky_color": "#b9b9b9",
+ "minecraft:visual/water_fog_color": "#556980"
+ },
"carvers": "#minecraft:in_biome/pale_garden",
"downfall": 0.8,
"effects": {
- "dry_foliage_color": 10528412,
- "fog_color": 8484720,
- "foliage_color": 8883574,
- "grass_color": 7832178,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [],
- "music_volume": 0.0,
- "sky_color": 12171705,
- "water_color": 7768221,
- "water_fog_color": 5597568
+ "dry_foliage_color": "#a0a69c",
+ "foliage_color": "#878d76",
+ "grass_color": "#778272",
+ "water_color": "#76889d"
},
"features": [
"#minecraft:raw_generation/in_biome/pale_garden",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/plains.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/plains.json
index 4e9bf9a962..2447673b77 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/plains.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/plains.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#78a7ff"
+ },
"carvers": "#minecraft:in_biome/plains",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/plains",
@@ -89,7 +82,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -97,6 +90,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/river.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/river.json
index 179466d536..25b8a5d043 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/river.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/river.json
@@ -1,18 +1,28 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/river",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/river",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna.json
index f36a10ed0d..01651122cd 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna.json
@@ -1,18 +1,12 @@
{
+ "attributes": {
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/savanna",
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/savanna",
@@ -95,7 +89,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -103,6 +97,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna_plateau.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna_plateau.json
index 44cf984a7b..74f9f0ed3c 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna_plateau.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/savanna_plateau.json
@@ -1,18 +1,12 @@
{
+ "attributes": {
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/savanna_plateau",
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/savanna_plateau",
@@ -107,7 +101,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -115,6 +109,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/small_end_islands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/small_end_islands.json
index a3e2321c7f..595944c32e 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/small_end_islands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/small_end_islands.json
@@ -2,17 +2,7 @@
"carvers": "#minecraft:in_biome/small_end_islands",
"downfall": 0.5,
"effects": {
- "fog_color": 10518688,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 0,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/small_end_islands",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_beach.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_beach.json
index 06cd6da3a8..6d8df28d47 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_beach.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_beach.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7fa1ff"
+ },
"carvers": "#minecraft:in_biome/snowy_beach",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8364543,
- "water_color": 4020182,
- "water_fog_color": 329011
+ "water_color": "#3d57d6"
},
"features": [
"#minecraft:raw_generation/in_biome/snowy_beach",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_plains.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_plains.json
index 1f850cac0c..e26a653fd5 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_plains.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_plains.json
@@ -1,19 +1,12 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7fa1ff"
+ },
"carvers": "#minecraft:in_biome/snowy_plains",
"creature_spawn_probability": 0.07,
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8364543,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/snowy_plains",
@@ -66,7 +59,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -74,6 +67,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_slopes.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_slopes.json
index 46191fee21..7bfeb6f33d 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_slopes.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_slopes.json
@@ -1,29 +1,19 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.snowy_slopes"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#829fff"
+ },
"carvers": "#minecraft:in_biome/snowy_slopes",
"downfall": 0.9,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.snowy_slopes"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 8560639,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/snowy_slopes",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_taiga.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_taiga.json
index 7930c07be2..abc042d2d2 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_taiga.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/snowy_taiga.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#839eff"
+ },
"carvers": "#minecraft:in_biome/snowy_taiga",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8625919,
- "water_color": 4020182,
- "water_fog_color": 329011
+ "water_color": "#3d57d6"
},
"features": [
"#minecraft:raw_generation/in_biome/snowy_taiga",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/soul_sand_valley.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/soul_sand_valley.json
index 90efdd143e..b6d1fb4ae5 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/soul_sand_valley.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/soul_sand_valley.json
@@ -1,40 +1,39 @@
{
- "carvers": "#minecraft:in_biome/soul_sand_valley",
- "downfall": 0.0,
- "effects": {
- "additions_sound": {
- "sound": "minecraft:ambient.soul_sand_valley.additions",
- "tick_chance": 0.0111
+ "attributes": {
+ "minecraft:audio/ambient_sounds": {
+ "additions": {
+ "sound": "minecraft:ambient.soul_sand_valley.additions",
+ "tick_chance": 0.0111
+ },
+ "loop": "minecraft:ambient.soul_sand_valley.loop",
+ "mood": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.soul_sand_valley.mood",
+ "tick_delay": 6000
+ }
},
- "ambient_sound": "minecraft:ambient.soul_sand_valley.loop",
- "fog_color": 1787717,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.soul_sand_valley.mood",
- "tick_delay": 6000
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.nether.soul_sand_valley"
+ }
},
- "music": [
+ "minecraft:visual/ambient_particles": [
{
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.nether.soul_sand_valley"
+ "particle": {
+ "type": "minecraft:ash"
},
- "weight": 1
+ "probability": 0.00625
}
],
- "music_volume": 1.0,
- "particle": {
- "options": {
- "type": "minecraft:ash"
- },
- "probability": 0.00625
- },
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "minecraft:visual/fog_color": "#1b4745"
+ },
+ "carvers": "#minecraft:in_biome/soul_sand_valley",
+ "downfall": 0.0,
+ "effects": {
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/soul_sand_valley",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/sparse_jungle.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/sparse_jungle.json
index c616dadfee..039a1fd8e4 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/sparse_jungle.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/sparse_jungle.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.sparse_jungle"
+ }
+ },
+ "minecraft:visual/sky_color": "#77a8ff"
+ },
"carvers": "#minecraft:in_biome/sparse_jungle",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.sparse_jungle"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7842047,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/sparse_jungle",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_peaks.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_peaks.json
index 83fe9384ac..63f1c002cf 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_peaks.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_peaks.json
@@ -1,29 +1,18 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.stony_peaks"
+ }
+ },
+ "minecraft:visual/sky_color": "#76a8ff"
+ },
"carvers": "#minecraft:in_biome/stony_peaks",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.stony_peaks"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7776511,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/stony_peaks",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_shore.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_shore.json
index 45cb9a94cf..238caeaf2a 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_shore.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/stony_shore.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7da2ff"
+ },
"carvers": "#minecraft:in_biome/stony_shore",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8233727,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/stony_shore",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/sunflower_plains.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/sunflower_plains.json
index a295d2aabb..0f9216e55a 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/sunflower_plains.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/sunflower_plains.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#78a7ff"
+ },
"carvers": "#minecraft:in_biome/sunflower_plains",
"downfall": 0.4,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/sunflower_plains",
@@ -89,7 +82,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -97,6 +90,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/swamp.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/swamp.json
index 2d4aedf830..953c698bf6 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/swamp.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/swamp.json
@@ -1,32 +1,27 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.swamp"
+ }
+ },
+ "minecraft:gameplay/increased_fire_burnout": true,
+ "minecraft:visual/sky_color": "#78a7ff",
+ "minecraft:visual/water_fog_color": "#232317",
+ "minecraft:visual/water_fog_end_distance": {
+ "argument": 0.85,
+ "modifier": "multiply"
+ }
+ },
"carvers": "#minecraft:in_biome/swamp",
"downfall": 0.9,
"effects": {
- "dry_foliage_color": 8082228,
- "fog_color": 12638463,
- "foliage_color": 6975545,
+ "dry_foliage_color": "#7b5334",
+ "foliage_color": "#6a7039",
"grass_color_modifier": "swamp",
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.swamp"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7907327,
- "water_color": 6388580,
- "water_fog_color": 2302743
+ "water_color": "#617b64"
},
"features": [
"#minecraft:raw_generation/in_biome/swamp",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/taiga.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/taiga.json
index 2e531498f8..b4d5ab751b 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/taiga.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/taiga.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7da3ff"
+ },
"carvers": "#minecraft:in_biome/taiga",
"downfall": 0.8,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8233983,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/taiga",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/the_end.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/the_end.json
index ef95b942e0..f1a98d14f5 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/the_end.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/the_end.json
@@ -2,17 +2,7 @@
"carvers": "#minecraft:in_biome/the_end",
"downfall": 0.5,
"effects": {
- "fog_color": 10518688,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 0,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/the_end",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/the_void.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/the_void.json
index 1a601e25a1..060bb381b4 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/the_void.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/the_void.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7ba4ff"
+ },
"carvers": "#minecraft:in_biome/the_void",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/the_void",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/warm_ocean.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/warm_ocean.json
index ea6da2bc45..afa1c7d55f 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/warm_ocean.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/warm_ocean.json
@@ -1,18 +1,29 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "creative": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.creative"
+ },
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.game"
+ },
+ "underwater": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.under_water"
+ }
+ },
+ "minecraft:visual/sky_color": "#7ba4ff",
+ "minecraft:visual/water_fog_color": "#041f33"
+ },
"carvers": "#minecraft:in_biome/warm_ocean",
"downfall": 0.5,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8103167,
- "water_color": 4445678,
- "water_fog_color": 270131
+ "water_color": "#43d5ee"
},
"features": [
"#minecraft:raw_generation/in_biome/warm_ocean",
@@ -120,6 +131,12 @@
}
],
"water_creature": [
+ {
+ "type": "minecraft:nautilus",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:squid",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/warped_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/warped_forest.json
index 231225af2d..ee104cd02e 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/warped_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/warped_forest.json
@@ -1,40 +1,39 @@
{
- "carvers": "#minecraft:in_biome/warped_forest",
- "downfall": 0.0,
- "effects": {
- "additions_sound": {
- "sound": "minecraft:ambient.warped_forest.additions",
- "tick_chance": 0.0111
+ "attributes": {
+ "minecraft:audio/ambient_sounds": {
+ "additions": {
+ "sound": "minecraft:ambient.warped_forest.additions",
+ "tick_chance": 0.0111
+ },
+ "loop": "minecraft:ambient.warped_forest.loop",
+ "mood": {
+ "block_search_extent": 8,
+ "offset": 2.0,
+ "sound": "minecraft:ambient.warped_forest.mood",
+ "tick_delay": 6000
+ }
},
- "ambient_sound": "minecraft:ambient.warped_forest.loop",
- "fog_color": 1705242,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.warped_forest.mood",
- "tick_delay": 6000
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.nether.warped_forest"
+ }
},
- "music": [
+ "minecraft:visual/ambient_particles": [
{
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.nether.warped_forest"
+ "particle": {
+ "type": "minecraft:warped_spore"
},
- "weight": 1
+ "probability": 0.01428
}
],
- "music_volume": 1.0,
- "particle": {
- "options": {
- "type": "minecraft:warped_spore"
- },
- "probability": 0.01428
- },
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "minecraft:visual/fog_color": "#1a051a"
+ },
+ "carvers": "#minecraft:in_biome/warped_forest",
+ "downfall": 0.0,
+ "effects": {
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/warped_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_forest.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_forest.json
index 02b614667b..03144ce9fa 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_forest.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_forest.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7da2ff"
+ },
"carvers": "#minecraft:in_biome/windswept_forest",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8233727,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/windswept_forest",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_gravelly_hills.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_gravelly_hills.json
index 02f1c27e6d..cceec1d67d 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_gravelly_hills.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_gravelly_hills.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7da2ff"
+ },
"carvers": "#minecraft:in_biome/windswept_gravelly_hills",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8233727,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/windswept_gravelly_hills",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_hills.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_hills.json
index b4fff701c8..e797b2ed7d 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_hills.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_hills.json
@@ -1,18 +1,11 @@
{
+ "attributes": {
+ "minecraft:visual/sky_color": "#7da2ff"
+ },
"carvers": "#minecraft:in_biome/windswept_hills",
"downfall": 0.3,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 8233727,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/windswept_hills",
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_savanna.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_savanna.json
index 7573aa3211..654316e47a 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_savanna.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/windswept_savanna.json
@@ -1,18 +1,12 @@
{
+ "attributes": {
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/windswept_savanna",
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/windswept_savanna",
@@ -95,7 +89,7 @@
"type": "minecraft:zombie",
"maxCount": 4,
"minCount": 4,
- "weight": 95
+ "weight": 90
},
{
"type": "minecraft:zombie_villager",
@@ -103,6 +97,12 @@
"minCount": 1,
"weight": 5
},
+ {
+ "type": "minecraft:zombie_horse",
+ "maxCount": 1,
+ "minCount": 1,
+ "weight": 5
+ },
{
"type": "minecraft:skeleton",
"maxCount": 4,
diff --git a/pfb_biome_extensions/data/minecraft/worldgen/biome/wooded_badlands.json b/pfb_biome_extensions/data/minecraft/worldgen/biome/wooded_badlands.json
index 19b1dd0313..daa4f291fe 100644
--- a/pfb_biome_extensions/data/minecraft/worldgen/biome/wooded_badlands.json
+++ b/pfb_biome_extensions/data/minecraft/worldgen/biome/wooded_badlands.json
@@ -1,32 +1,22 @@
{
+ "attributes": {
+ "minecraft:audio/background_music": {
+ "default": {
+ "max_delay": 24000,
+ "min_delay": 12000,
+ "sound": "minecraft:music.overworld.badlands"
+ }
+ },
+ "minecraft:gameplay/snow_golem_melts": true,
+ "minecraft:visual/sky_color": "#6eb1ff"
+ },
"carvers": "#minecraft:in_biome/wooded_badlands",
"creature_spawn_probability": 0.04,
"downfall": 0.0,
"effects": {
- "fog_color": 12638463,
- "foliage_color": 10387789,
- "grass_color": 9470285,
- "mood_sound": {
- "block_search_extent": 8,
- "offset": 2.0,
- "sound": "minecraft:ambient.cave",
- "tick_delay": 6000
- },
- "music": [
- {
- "data": {
- "max_delay": 24000,
- "min_delay": 12000,
- "replace_current_music": false,
- "sound": "minecraft:music.overworld.badlands"
- },
- "weight": 1
- }
- ],
- "music_volume": 1.0,
- "sky_color": 7254527,
- "water_color": 4159204,
- "water_fog_color": 329011
+ "foliage_color": "#9e814d",
+ "grass_color": "#90814d",
+ "water_color": "#3f76e4"
},
"features": [
"#minecraft:raw_generation/in_biome/wooded_badlands",
diff --git a/poetry.lock b/poetry.lock
deleted file mode 100644
index b37d1c359d..0000000000
--- a/poetry.lock
+++ /dev/null
@@ -1,886 +0,0 @@
-# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
-
-[[package]]
-name = "annotated-types"
-version = "0.7.0"
-description = "Reusable constraint types to use with typing.Annotated"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
- {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
-]
-
-[[package]]
-name = "beet"
-version = "0.108.5"
-description = "The Minecraft pack development kit"
-optional = false
-python-versions = "^3.10"
-files = []
-develop = false
-
-[package.dependencies]
-click = "^8.1.7"
-click-help-colors = "^0.9.2"
-colorama = {version = "*", markers = "sys_platform == \"win32\""}
-Jinja2 = "^3.1.2"
-nbtlib = "^1.12.1"
-pathspec = "^0.11.2"
-pydantic = "^2.5.2"
-PyYAML = "^6.0.1"
-toml = "^0.10.2"
-typing-extensions = "^4.8.0"
-
-[package.extras]
-image = ["Pillow"]
-
-[package.source]
-type = "git"
-url = "https://github.com/misode/beet.git"
-reference = "fix-overlay-folders"
-resolved_reference = "f3cf797e1791d532cb23456821fd215b080e9fb3"
-
-[[package]]
-name = "black"
-version = "22.12.0"
-description = "The uncompromising code formatter."
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"},
- {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"},
- {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"},
- {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"},
- {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"},
- {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"},
- {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"},
- {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"},
- {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"},
- {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"},
- {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"},
- {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"},
-]
-
-[package.dependencies]
-click = ">=8.0.0"
-mypy-extensions = ">=0.4.3"
-pathspec = ">=0.9.0"
-platformdirs = ">=2"
-tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
-
-[package.extras]
-colorama = ["colorama (>=0.4.3)"]
-d = ["aiohttp (>=3.7.4)"]
-jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
-uvloop = ["uvloop (>=0.15.2)"]
-
-[[package]]
-name = "bolt"
-version = "0.49.1"
-description = "Supercharge Minecraft commands with Python"
-optional = false
-python-versions = "<4.0,>=3.10"
-files = [
- {file = "bolt-0.49.1-py3-none-any.whl", hash = "sha256:912496abb4ed2593db1e44ec6655685d63d0003ee7218a2740ce91ad8ad9e36e"},
- {file = "bolt-0.49.1.tar.gz", hash = "sha256:40cd165e6eb438161cc8cd91fbebc90672169ee7114a3a79d3351e127a08dec7"},
-]
-
-[package.dependencies]
-beet = ">=0.108.0"
-mecha = ">=0.95.0"
-
-[[package]]
-name = "certifi"
-version = "2024.8.30"
-description = "Python package for providing Mozilla's CA Bundle."
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
- {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
-]
-
-[[package]]
-name = "charset-normalizer"
-version = "3.4.0"
-description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"},
- {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"},
- {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"},
- {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"},
- {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"},
- {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"},
- {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"},
- {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"},
- {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"},
- {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"},
-]
-
-[[package]]
-name = "click"
-version = "8.1.7"
-description = "Composable command line interface toolkit"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
- {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
-]
-
-[package.dependencies]
-colorama = {version = "*", markers = "platform_system == \"Windows\""}
-
-[[package]]
-name = "click-help-colors"
-version = "0.9.4"
-description = "Colorization of help messages in Click"
-optional = false
-python-versions = "*"
-files = [
- {file = "click-help-colors-0.9.4.tar.gz", hash = "sha256:f4cabe52cf550299b8888f4f2ee4c5f359ac27e33bcfe4d61db47785a5cc936c"},
- {file = "click_help_colors-0.9.4-py3-none-any.whl", hash = "sha256:b33c5803eeaeb084393b1ab5899dc5476c7196b87a18713045afe76f840b42db"},
-]
-
-[package.dependencies]
-click = ">=7.0,<9"
-
-[package.extras]
-dev = ["mypy", "pytest"]
-
-[[package]]
-name = "colorama"
-version = "0.4.6"
-description = "Cross-platform colored terminal text."
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-files = [
- {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
- {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
-]
-
-[[package]]
-name = "idna"
-version = "3.10"
-description = "Internationalized Domain Names in Applications (IDNA)"
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
- {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
-]
-
-[package.extras]
-all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
-
-[[package]]
-name = "isort"
-version = "5.13.2"
-description = "A Python utility / library to sort Python imports."
-optional = false
-python-versions = ">=3.8.0"
-files = [
- {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"},
- {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"},
-]
-
-[package.extras]
-colors = ["colorama (>=0.4.6)"]
-
-[[package]]
-name = "jinja2"
-version = "3.1.4"
-description = "A very fast and expressive template engine."
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"},
- {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"},
-]
-
-[package.dependencies]
-MarkupSafe = ">=2.0"
-
-[package.extras]
-i18n = ["Babel (>=2.7)"]
-
-[[package]]
-name = "markupsafe"
-version = "3.0.1"
-description = "Safely add untrusted strings to HTML/XML markup."
-optional = false
-python-versions = ">=3.9"
-files = [
- {file = "MarkupSafe-3.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:db842712984e91707437461930e6011e60b39136c7331e971952bb30465bc1a1"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ffb4a8e7d46ed96ae48805746755fadd0909fea2306f93d5d8233ba23dda12a"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67c519635a4f64e495c50e3107d9b4075aec33634272b5db1cde839e07367589"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48488d999ed50ba8d38c581d67e496f955821dc183883550a6fbc7f1aefdc170"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f31ae06f1328595d762c9a2bf29dafd8621c7d3adc130cbb46278079758779ca"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80fcbf3add8790caddfab6764bde258b5d09aefbe9169c183f88a7410f0f6dea"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3341c043c37d78cc5ae6e3e305e988532b072329639007fd408a476642a89fd6"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cb53e2a99df28eee3b5f4fea166020d3ef9116fdc5764bc5117486e6d1211b25"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-win32.whl", hash = "sha256:db15ce28e1e127a0013dfb8ac243a8e392db8c61eae113337536edb28bdc1f97"},
- {file = "MarkupSafe-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:4ffaaac913c3f7345579db4f33b0020db693f302ca5137f106060316761beea9"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26627785a54a947f6d7336ce5963569b5d75614619e75193bdb4e06e21d447ad"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b954093679d5750495725ea6f88409946d69cfb25ea7b4c846eef5044194f583"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:973a371a55ce9ed333a3a0f8e0bcfae9e0d637711534bcb11e130af2ab9334e7"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:244dbe463d5fb6d7ce161301a03a6fe744dac9072328ba9fc82289238582697b"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d98e66a24497637dd31ccab090b34392dddb1f2f811c4b4cd80c230205c074a3"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ad91738f14eb8da0ff82f2acd0098b6257621410dcbd4df20aaa5b4233d75a50"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7044312a928a66a4c2a22644147bc61a199c1709712069a344a3fb5cfcf16915"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a4792d3b3a6dfafefdf8e937f14906a51bd27025a36f4b188728a73382231d91"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-win32.whl", hash = "sha256:fa7d686ed9883f3d664d39d5a8e74d3c5f63e603c2e3ff0abcba23eac6542635"},
- {file = "MarkupSafe-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:9ba25a71ebf05b9bb0e2ae99f8bc08a07ee8e98c612175087112656ca0f5c8bf"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8ae369e84466aa70f3154ee23c1451fda10a8ee1b63923ce76667e3077f2b0c4"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40f1e10d51c92859765522cbd79c5c8989f40f0419614bcdc5015e7b6bf97fc5"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a4cb365cb49b750bdb60b846b0c0bc49ed62e59a76635095a179d440540c346"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee3941769bd2522fe39222206f6dd97ae83c442a94c90f2b7a25d847d40f4729"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62fada2c942702ef8952754abfc1a9f7658a4d5460fabe95ac7ec2cbe0d02abc"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4c2d64fdba74ad16138300815cfdc6ab2f4647e23ced81f59e940d7d4a1469d9"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fb532dd9900381d2e8f48172ddc5a59db4c445a11b9fab40b3b786da40d3b56b"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0f84af7e813784feb4d5e4ff7db633aba6c8ca64a833f61d8e4eade234ef0c38"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-win32.whl", hash = "sha256:cbf445eb5628981a80f54087f9acdbf84f9b7d862756110d172993b9a5ae81aa"},
- {file = "MarkupSafe-3.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:a10860e00ded1dd0a65b83e717af28845bb7bd16d8ace40fe5531491de76b79f"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e81c52638315ff4ac1b533d427f50bc0afc746deb949210bc85f05d4f15fd772"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:312387403cd40699ab91d50735ea7a507b788091c416dd007eac54434aee51da"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ae99f31f47d849758a687102afdd05bd3d3ff7dbab0a8f1587981b58a76152a"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c97ff7fedf56d86bae92fa0a646ce1a0ec7509a7578e1ed238731ba13aabcd1c"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7420ceda262dbb4b8d839a4ec63d61c261e4e77677ed7c66c99f4e7cb5030dd"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45d42d132cff577c92bfba536aefcfea7e26efb975bd455db4e6602f5c9f45e7"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c8817557d0de9349109acb38b9dd570b03cc5014e8aabf1cbddc6e81005becd"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a54c43d3ec4cf2a39f4387ad044221c66a376e58c0d0e971d47c475ba79c6b5"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-win32.whl", hash = "sha256:c91b394f7601438ff79a4b93d16be92f216adb57d813a78be4446fe0f6bc2d8c"},
- {file = "MarkupSafe-3.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:fe32482b37b4b00c7a52a07211b479653b7fe4f22b2e481b9a9b099d8a430f2f"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:17b2aea42a7280db02ac644db1d634ad47dcc96faf38ab304fe26ba2680d359a"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:852dc840f6d7c985603e60b5deaae1d89c56cb038b577f6b5b8c808c97580f1d"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0778de17cff1acaeccc3ff30cd99a3fd5c50fc58ad3d6c0e0c4c58092b859396"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:800100d45176652ded796134277ecb13640c1a537cad3b8b53da45aa96330453"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d06b24c686a34c86c8c1fba923181eae6b10565e4d80bdd7bc1c8e2f11247aa4"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:33d1c36b90e570ba7785dacd1faaf091203d9942bc036118fab8110a401eb1a8"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:beeebf760a9c1f4c07ef6a53465e8cfa776ea6a2021eda0d0417ec41043fe984"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bbde71a705f8e9e4c3e9e33db69341d040c827c7afa6789b14c6e16776074f5a"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-win32.whl", hash = "sha256:82b5dba6eb1bcc29cc305a18a3c5365d2af06ee71b123216416f7e20d2a84e5b"},
- {file = "MarkupSafe-3.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:730d86af59e0e43ce277bb83970530dd223bf7f2a838e086b50affa6ec5f9295"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4935dd7883f1d50e2ffecca0aa33dc1946a94c8f3fdafb8df5c330e48f71b132"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e9393357f19954248b00bed7c56f29a25c930593a77630c719653d51e7669c2a"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40621d60d0e58aa573b68ac5e2d6b20d44392878e0bfc159012a5787c4e35bc8"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f94190df587738280d544971500b9cafc9b950d32efcb1fba9ac10d84e6aa4e6"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6a387d61fe41cdf7ea95b38e9af11cfb1a63499af2759444b99185c4ab33f5b"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8ad4ad1429cd4f315f32ef263c1342166695fad76c100c5d979c45d5570ed58b"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e24bfe89c6ac4c31792793ad9f861b8f6dc4546ac6dc8f1c9083c7c4f2b335cd"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2a4b34a8d14649315c4bc26bbfa352663eb51d146e35eef231dd739d54a5430a"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-win32.whl", hash = "sha256:242d6860f1fd9191aef5fae22b51c5c19767f93fb9ead4d21924e0bcb17619d8"},
- {file = "MarkupSafe-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:93e8248d650e7e9d49e8251f883eed60ecbc0e8ffd6349e18550925e31bd029b"},
- {file = "markupsafe-3.0.1.tar.gz", hash = "sha256:3e683ee4f5d0fa2dde4db77ed8dd8a876686e3fc417655c2ece9a90576905344"},
-]
-
-[[package]]
-name = "mecha"
-version = "0.95.2"
-description = "A powerful Minecraft command library"
-optional = false
-python-versions = "<4.0,>=3.10"
-files = [
- {file = "mecha-0.95.2-py3-none-any.whl", hash = "sha256:8abbbc6eee9871d622bf9c90cd6c3217b8325966d546bb0ca229d1eb7b963eff"},
- {file = "mecha-0.95.2.tar.gz", hash = "sha256:06ee6f80f9dc091617fdeef7c03ffbbf482d5ec07cceab6e9f31a72a4e8a1ed8"},
-]
-
-[package.dependencies]
-beet = ">=0.108.0"
-tokenstream = ">=1.7.0,<2.0.0"
-
-[[package]]
-name = "mypy-extensions"
-version = "1.0.0"
-description = "Type system extensions for programs checked with the mypy type checker."
-optional = false
-python-versions = ">=3.5"
-files = [
- {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
- {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
-]
-
-[[package]]
-name = "nbtlib"
-version = "1.12.1"
-description = "A python package to read and edit nbt data"
-optional = false
-python-versions = ">=3.8,<4.0"
-files = [
- {file = "nbtlib-1.12.1-py3-none-any.whl", hash = "sha256:55e6811aa4e4bfe9000cbe026f1fe540ebc231c8a3f3558d7819c6c7274001c6"},
- {file = "nbtlib-1.12.1.tar.gz", hash = "sha256:1642e34ace7131718c21354562a183757613f3554445e6fcf8effb155b6591f5"},
-]
-
-[package.dependencies]
-numpy = "*"
-
-[[package]]
-name = "numpy"
-version = "2.1.2"
-description = "Fundamental package for array computing in Python"
-optional = false
-python-versions = ">=3.10"
-files = [
- {file = "numpy-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:30d53720b726ec36a7f88dc873f0eec8447fbc93d93a8f079dfac2629598d6ee"},
- {file = "numpy-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d3ca0a72dd8846eb6f7dfe8f19088060fcb76931ed592d29128e0219652884"},
- {file = "numpy-2.1.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:fc44e3c68ff00fd991b59092a54350e6e4911152682b4782f68070985aa9e648"},
- {file = "numpy-2.1.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:7c1c60328bd964b53f8b835df69ae8198659e2b9302ff9ebb7de4e5a5994db3d"},
- {file = "numpy-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cdb606a7478f9ad91c6283e238544451e3a95f30fb5467fbf715964341a8a86"},
- {file = "numpy-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d666cb72687559689e9906197e3bec7b736764df6a2e58ee265e360663e9baf7"},
- {file = "numpy-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c6eef7a2dbd0abfb0d9eaf78b73017dbfd0b54051102ff4e6a7b2980d5ac1a03"},
- {file = "numpy-2.1.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:12edb90831ff481f7ef5f6bc6431a9d74dc0e5ff401559a71e5e4611d4f2d466"},
- {file = "numpy-2.1.2-cp310-cp310-win32.whl", hash = "sha256:a65acfdb9c6ebb8368490dbafe83c03c7e277b37e6857f0caeadbbc56e12f4fb"},
- {file = "numpy-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:860ec6e63e2c5c2ee5e9121808145c7bf86c96cca9ad396c0bd3e0f2798ccbe2"},
- {file = "numpy-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b42a1a511c81cc78cbc4539675713bbcf9d9c3913386243ceff0e9429ca892fe"},
- {file = "numpy-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:faa88bc527d0f097abdc2c663cddf37c05a1c2f113716601555249805cf573f1"},
- {file = "numpy-2.1.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c82af4b2ddd2ee72d1fc0c6695048d457e00b3582ccde72d8a1c991b808bb20f"},
- {file = "numpy-2.1.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:13602b3174432a35b16c4cfb5de9a12d229727c3dd47a6ce35111f2ebdf66ff4"},
- {file = "numpy-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ebec5fd716c5a5b3d8dfcc439be82a8407b7b24b230d0ad28a81b61c2f4659a"},
- {file = "numpy-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2b49c3c0804e8ecb05d59af8386ec2f74877f7ca8fd9c1e00be2672e4d399b1"},
- {file = "numpy-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2cbba4b30bf31ddbe97f1c7205ef976909a93a66bb1583e983adbd155ba72ac2"},
- {file = "numpy-2.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8e00ea6fc82e8a804433d3e9cedaa1051a1422cb6e443011590c14d2dea59146"},
- {file = "numpy-2.1.2-cp311-cp311-win32.whl", hash = "sha256:5006b13a06e0b38d561fab5ccc37581f23c9511879be7693bd33c7cd15ca227c"},
- {file = "numpy-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:f1eb068ead09f4994dec71c24b2844f1e4e4e013b9629f812f292f04bd1510d9"},
- {file = "numpy-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7bf0a4f9f15b32b5ba53147369e94296f5fffb783db5aacc1be15b4bf72f43b"},
- {file = "numpy-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b1d0fcae4f0949f215d4632be684a539859b295e2d0cb14f78ec231915d644db"},
- {file = "numpy-2.1.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f751ed0a2f250541e19dfca9f1eafa31a392c71c832b6bb9e113b10d050cb0f1"},
- {file = "numpy-2.1.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:bd33f82e95ba7ad632bc57837ee99dba3d7e006536200c4e9124089e1bf42426"},
- {file = "numpy-2.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b8cde4f11f0a975d1fd59373b32e2f5a562ade7cde4f85b7137f3de8fbb29a0"},
- {file = "numpy-2.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d95f286b8244b3649b477ac066c6906fbb2905f8ac19b170e2175d3d799f4df"},
- {file = "numpy-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ab4754d432e3ac42d33a269c8567413bdb541689b02d93788af4131018cbf366"},
- {file = "numpy-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e585c8ae871fd38ac50598f4763d73ec5497b0de9a0ab4ef5b69f01c6a046142"},
- {file = "numpy-2.1.2-cp312-cp312-win32.whl", hash = "sha256:9c6c754df29ce6a89ed23afb25550d1c2d5fdb9901d9c67a16e0b16eaf7e2550"},
- {file = "numpy-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:456e3b11cb79ac9946c822a56346ec80275eaf2950314b249b512896c0d2505e"},
- {file = "numpy-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a84498e0d0a1174f2b3ed769b67b656aa5460c92c9554039e11f20a05650f00d"},
- {file = "numpy-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4d6ec0d4222e8ffdab1744da2560f07856421b367928026fb540e1945f2eeeaf"},
- {file = "numpy-2.1.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:259ec80d54999cc34cd1eb8ded513cb053c3bf4829152a2e00de2371bd406f5e"},
- {file = "numpy-2.1.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:675c741d4739af2dc20cd6c6a5c4b7355c728167845e3c6b0e824e4e5d36a6c3"},
- {file = "numpy-2.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b2d4e667895cc55e3ff2b56077e4c8a5604361fc21a042845ea3ad67465aa8"},
- {file = "numpy-2.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43cca367bf94a14aca50b89e9bc2061683116cfe864e56740e083392f533ce7a"},
- {file = "numpy-2.1.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:76322dcdb16fccf2ac56f99048af32259dcc488d9b7e25b51e5eca5147a3fb98"},
- {file = "numpy-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:32e16a03138cabe0cb28e1007ee82264296ac0983714094380b408097a418cfe"},
- {file = "numpy-2.1.2-cp313-cp313-win32.whl", hash = "sha256:242b39d00e4944431a3cd2db2f5377e15b5785920421993770cddb89992c3f3a"},
- {file = "numpy-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f2ded8d9b6f68cc26f8425eda5d3877b47343e68ca23d0d0846f4d312ecaa445"},
- {file = "numpy-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ffef621c14ebb0188a8633348504a35c13680d6da93ab5cb86f4e54b7e922b5"},
- {file = "numpy-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ad369ed238b1959dfbade9018a740fb9392c5ac4f9b5173f420bd4f37ba1f7a0"},
- {file = "numpy-2.1.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d82075752f40c0ddf57e6e02673a17f6cb0f8eb3f587f63ca1eaab5594da5b17"},
- {file = "numpy-2.1.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:1600068c262af1ca9580a527d43dc9d959b0b1d8e56f8a05d830eea39b7c8af6"},
- {file = "numpy-2.1.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a26ae94658d3ba3781d5e103ac07a876b3e9b29db53f68ed7df432fd033358a8"},
- {file = "numpy-2.1.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13311c2db4c5f7609b462bc0f43d3c465424d25c626d95040f073e30f7570e35"},
- {file = "numpy-2.1.2-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:2abbf905a0b568706391ec6fa15161fad0fb5d8b68d73c461b3c1bab6064dd62"},
- {file = "numpy-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ef444c57d664d35cac4e18c298c47d7b504c66b17c2ea91312e979fcfbdfb08a"},
- {file = "numpy-2.1.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bdd407c40483463898b84490770199d5714dcc9dd9b792f6c6caccc523c00952"},
- {file = "numpy-2.1.2-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:da65fb46d4cbb75cb417cddf6ba5e7582eb7bb0b47db4b99c9fe5787ce5d91f5"},
- {file = "numpy-2.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c193d0b0238638e6fc5f10f1b074a6993cb13b0b431f64079a509d63d3aa8b7"},
- {file = "numpy-2.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a7d80b2e904faa63068ead63107189164ca443b42dd1930299e0d1cb041cec2e"},
- {file = "numpy-2.1.2.tar.gz", hash = "sha256:13532a088217fa624c99b843eeb54640de23b3414b14aa66d023805eb731066c"},
-]
-
-[[package]]
-name = "pathspec"
-version = "0.11.2"
-description = "Utility library for gitignore style pattern matching of file paths."
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"},
- {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"},
-]
-
-[[package]]
-name = "pillow"
-version = "10.4.0"
-description = "Python Imaging Library (Fork)"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"},
- {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"},
- {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"},
- {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"},
- {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"},
- {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"},
- {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"},
- {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"},
- {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"},
- {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"},
- {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"},
- {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"},
- {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"},
- {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"},
- {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"},
- {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"},
- {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"},
- {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"},
- {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"},
- {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"},
- {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"},
- {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"},
- {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"},
- {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"},
- {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"},
- {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"},
- {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"},
- {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"},
- {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"},
- {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"},
- {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"},
- {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"},
- {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"},
- {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"},
- {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"},
- {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"},
- {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"},
- {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"},
- {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"},
- {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"},
- {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"},
- {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"},
- {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"},
- {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"},
- {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"},
- {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"},
- {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"},
- {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"},
- {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"},
- {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"},
- {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"},
- {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"},
- {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"},
- {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"},
- {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"},
- {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"},
- {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"},
- {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"},
- {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"},
- {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"},
- {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"},
- {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"},
- {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"},
- {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"},
- {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"},
- {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"},
- {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"},
- {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"},
-]
-
-[package.extras]
-docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"]
-fpx = ["olefile"]
-mic = ["olefile"]
-tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
-typing = ["typing-extensions"]
-xmp = ["defusedxml"]
-
-[[package]]
-name = "platformdirs"
-version = "4.3.6"
-description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
- {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
-]
-
-[package.extras]
-docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"]
-test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"]
-type = ["mypy (>=1.11.2)"]
-
-[[package]]
-name = "pydantic"
-version = "2.9.2"
-description = "Data validation using Python type hints"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"},
- {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"},
-]
-
-[package.dependencies]
-annotated-types = ">=0.6.0"
-pydantic-core = "2.23.4"
-typing-extensions = [
- {version = ">=4.12.2", markers = "python_version >= \"3.13\""},
- {version = ">=4.6.1", markers = "python_version < \"3.13\""},
-]
-
-[package.extras]
-email = ["email-validator (>=2.0.0)"]
-timezone = ["tzdata"]
-
-[[package]]
-name = "pydantic-core"
-version = "2.23.4"
-description = "Core functionality for Pydantic validation and serialization"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"},
- {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"},
- {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"},
- {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"},
- {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"},
- {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"},
- {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"},
- {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"},
- {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"},
- {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"},
- {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"},
- {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"},
- {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"},
- {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"},
- {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"},
- {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"},
- {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"},
- {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"},
- {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"},
- {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"},
- {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"},
- {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"},
- {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"},
- {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"},
- {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"},
- {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"},
- {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"},
- {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"},
- {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"},
- {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"},
- {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"},
- {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"},
- {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"},
- {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"},
- {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"},
- {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"},
- {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"},
- {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"},
- {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"},
- {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"},
- {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"},
- {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"},
- {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"},
- {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"},
- {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"},
-]
-
-[package.dependencies]
-typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
-
-[[package]]
-name = "pyyaml"
-version = "6.0.2"
-description = "YAML parser and emitter for Python"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
- {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
- {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
- {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
- {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
- {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
- {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
- {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
- {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
- {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
- {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
- {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
- {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
- {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
- {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
- {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
- {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
- {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
- {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
- {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
- {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
- {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
- {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
- {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
- {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
- {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
- {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
- {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
- {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
- {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
- {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
- {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
- {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
- {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
- {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
-]
-
-[[package]]
-name = "repro-zipfile"
-version = "0.1.0"
-description = "A tiny, zero-dependency replacement for Python's zipfile.ZipFile for creating reproducible/deterministic ZIP archives."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "repro_zipfile-0.1.0-py3-none-any.whl", hash = "sha256:ee699c194ca6d712086528b03afe03f7ff02e8f6ce16ee434b4aab8fa3d281c5"},
- {file = "repro_zipfile-0.1.0.tar.gz", hash = "sha256:f9f84760e68adb5adca1b9e670356a7ec2885739d23016944bc380dde238006d"},
-]
-
-[package.extras]
-tests = ["pytest (>=6)", "pytest-cases"]
-
-[[package]]
-name = "requests"
-version = "2.32.3"
-description = "Python HTTP for Humans."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
- {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
-]
-
-[package.dependencies]
-certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<4"
-idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<3"
-
-[package.extras]
-socks = ["PySocks (>=1.5.6,!=1.5.7)"]
-use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
-
-[[package]]
-name = "tokenstream"
-version = "1.7.0"
-description = "A versatile token stream for handwritten parsers"
-optional = false
-python-versions = ">=3.10,<4.0"
-files = [
- {file = "tokenstream-1.7.0-py3-none-any.whl", hash = "sha256:fdbb20e8a99b07e94ce88016e5f243a1582630a7459bd2e7a1c786f33543fcf9"},
- {file = "tokenstream-1.7.0.tar.gz", hash = "sha256:9f98387c7e74d224f7cca874ce77bb775ece6cb585e9ba18441960e2b35fae61"},
-]
-
-[[package]]
-name = "toml"
-version = "0.10.2"
-description = "Python Library for Tom's Obvious, Minimal Language"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-files = [
- {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
- {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
-]
-
-[[package]]
-name = "tomli"
-version = "2.0.2"
-description = "A lil' TOML parser"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"},
- {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"},
-]
-
-[[package]]
-name = "typing-extensions"
-version = "4.12.2"
-description = "Backported and Experimental Type Hints for Python 3.8+"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
- {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
-]
-
-[[package]]
-name = "urllib3"
-version = "2.2.3"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
- {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
-]
-
-[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
-h2 = ["h2 (>=4,<5)"]
-socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
-zstd = ["zstandard (>=0.18.0)"]
-
-[metadata]
-lock-version = "2.0"
-python-versions = "^3.10"
-content-hash = "c28deb2084c6401818c84420ded8139bc144ee87eddd093d98aa707f66d15c14"
diff --git a/pyproject.toml b/pyproject.toml
index a1f7e92060..61a5ca5c13 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,7 +8,7 @@ authors = [
requires-python = ">= 3.10, < 4.0"
dependencies = [
"beet >= 0.112.1",
- "mecha >= 0.99.0",
+ "mecha >= 0.101.0",
"bolt >= 0.49.2",
"PyYAML >= 6.0, < 7.0",
"pydantic >= 2.6.1, < 3.0.0",
diff --git a/resource_pack/dev_description.py b/resource_pack/dev_description.py
index 7dea90284e..ea623fb325 100644
--- a/resource_pack/dev_description.py
+++ b/resource_pack/dev_description.py
@@ -8,7 +8,7 @@ def beet_default(ctx: Context):
"color": "red"
}
]
- ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 69}
+ ctx.assets.supported_formats = {"min_inclusive": 55, "max_inclusive": 75}
ctx.assets.pack_format = 55
ctx.assets.min_format = 55
- ctx.assets.max_format = (69, 0)
+ ctx.assets.max_format = 75
diff --git a/spyglass.json b/spyglass.json
index e59b68e68c..14bf697a8b 100644
--- a/spyglass.json
+++ b/spyglass.json
@@ -1,6 +1,6 @@
{
"env": {
- "gameVersion": "1.21.9",
+ "gameVersion": "1.21.11-rc2",
"exclude": [
".*/**",
"docs/**",
diff --git a/uv.lock b/uv.lock
index b00a0edd94..66a65e7838 100644
--- a/uv.lock
+++ b/uv.lock
@@ -201,7 +201,7 @@ dev = [
requires-dist = [
{ name = "beet", specifier = ">=0.112.1" },
{ name = "bolt", specifier = ">=0.49.2" },
- { name = "mecha", specifier = ">=0.99.0" },
+ { name = "mecha", specifier = ">=0.101.0" },
{ name = "pillow", specifier = ">=10.0.0,<11.0.0" },
{ name = "pydantic", specifier = ">=2.6.1,<3.0.0" },
{ name = "pyyaml", specifier = ">=6.0,<7.0" },
@@ -306,15 +306,15 @@ wheels = [
[[package]]
name = "mecha"
-version = "0.99.0"
+version = "0.101.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "beet" },
{ name = "tokenstream" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0d/ed/86ad891d2873d6f2cef0d70ab20e4d3e4a2ad3a4e2b9e43a936546a49607/mecha-0.99.0.tar.gz", hash = "sha256:78b0493d9b2fa010e9083b071939c9359f0804492cd405e0473f88145951b8c6", size = 138433 }
+sdist = { url = "https://files.pythonhosted.org/packages/00/40/d0e25c36a6793bff6fa9ced487ee81fc69acae06838154cb2804b8388192/mecha-0.101.0.tar.gz", hash = "sha256:3fcf91c0ad9b73f43728df74ad9da9b311bcc15e8594167be1c47cb862e8ce43", size = 139327 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5e/fe/58a92a2267d63993e832e6326b37703e543830c8c657fccfbfd8b0dcb533/mecha-0.99.0-py3-none-any.whl", hash = "sha256:9d24fb45dfebe3e31d1631653ff5c409aa09ca11da67e9a442fe400276915f3d", size = 164746 },
+ { url = "https://files.pythonhosted.org/packages/8a/e4/848841f9a2523d63f22e967bf57cb5e398eb3e2e920d9acb726eb4c1ebd9/mecha-0.101.0-py3-none-any.whl", hash = "sha256:be66abc4c91957f4ff37dd85af7c19500dc8cdb899118c1d0c5254ac87b5e35a", size = 165726 },
]
[[package]]