diff --git a/kubejs/assets/betterend/textures/block/amaranita_fur.png b/kubejs/assets/betterend/textures/block/amaranita_fur.png index ba1cf0c8b..082a08fbd 100644 Binary files a/kubejs/assets/betterend/textures/block/amaranita_fur.png and b/kubejs/assets/betterend/textures/block/amaranita_fur.png differ diff --git a/kubejs/assets/betterend/textures/block/amaranita_stem_middle.png b/kubejs/assets/betterend/textures/block/amaranita_stem_middle.png index af2df081d..5259795de 100644 Binary files a/kubejs/assets/betterend/textures/block/amaranita_stem_middle.png and b/kubejs/assets/betterend/textures/block/amaranita_stem_middle.png differ diff --git a/kubejs/assets/betterend/textures/block/amaranita_stem_roots.png b/kubejs/assets/betterend/textures/block/amaranita_stem_roots.png index 2325249d5..262cbc224 100644 Binary files a/kubejs/assets/betterend/textures/block/amaranita_stem_roots.png and b/kubejs/assets/betterend/textures/block/amaranita_stem_roots.png differ diff --git a/kubejs/assets/betterend/textures/block/amaranita_stem_top.png b/kubejs/assets/betterend/textures/block/amaranita_stem_top.png index f4499f4e6..1635f89ef 100644 Binary files a/kubejs/assets/betterend/textures/block/amaranita_stem_top.png and b/kubejs/assets/betterend/textures/block/amaranita_stem_top.png differ diff --git a/kubejs/assets/betterend/textures/block/large_amaranita_cap_bottom.png b/kubejs/assets/betterend/textures/block/large_amaranita_cap_bottom.png index a87e472e3..a6593f506 100644 Binary files a/kubejs/assets/betterend/textures/block/large_amaranita_cap_bottom.png and b/kubejs/assets/betterend/textures/block/large_amaranita_cap_bottom.png differ diff --git a/kubejs/assets/betterend/textures/block/large_amaranita_cap_side.png b/kubejs/assets/betterend/textures/block/large_amaranita_cap_side.png index fa114fa7f..f16912d86 100644 Binary files a/kubejs/assets/betterend/textures/block/large_amaranita_cap_side.png and b/kubejs/assets/betterend/textures/block/large_amaranita_cap_side.png differ diff --git a/kubejs/assets/betterend/textures/block/large_amaranita_cap_top.png b/kubejs/assets/betterend/textures/block/large_amaranita_cap_top.png index 67fc68f87..565e473dc 100644 Binary files a/kubejs/assets/betterend/textures/block/large_amaranita_cap_top.png and b/kubejs/assets/betterend/textures/block/large_amaranita_cap_top.png differ diff --git a/kubejs/assets/betterend/textures/block/purple_polypore.png b/kubejs/assets/betterend/textures/block/purple_polypore.png index 4f4406101..424b94487 100644 Binary files a/kubejs/assets/betterend/textures/block/purple_polypore.png and b/kubejs/assets/betterend/textures/block/purple_polypore.png differ diff --git a/kubejs/assets/betterend/textures/block/small_amaranita_mushroom.png b/kubejs/assets/betterend/textures/block/small_amaranita_mushroom.png index 51e2a511f..b60004704 100644 Binary files a/kubejs/assets/betterend/textures/block/small_amaranita_mushroom.png and b/kubejs/assets/betterend/textures/block/small_amaranita_mushroom.png differ diff --git a/kubejs/data/ad_astra/dimension/mars.json b/kubejs/data/ad_astra/dimension/mars.json index d244e8814..e4bb05d4e 100644 --- a/kubejs/data/ad_astra/dimension/mars.json +++ b/kubejs/data/ad_astra/dimension/mars.json @@ -16,7 +16,7 @@ "mars": { "raw": "ad_astra:mars_stone", "hardened": "tfg:rock/hardened_mars_stone", - "gravel": "ad_astra:mars_cobblestone", + "gravel": "tfg:rock/gravel_mars", "cobble": "ad_astra:mars_cobblestone", "sand": "ad_astra:mars_sand", "sandstone": "ad_astra:mars_stone", @@ -26,7 +26,7 @@ "venus": { "raw": "ad_astra:venus_stone", "hardened": "tfg:rock/hardened_venus_stone", - "gravel": "ad_astra:venus_cobblestone", + "gravel": "tfg:rock/gravel_venus", "cobble": "ad_astra:venus_cobblestone", "sand": "ad_astra:venus_sand", "sandstone": "ad_astra:venus_sandstone", @@ -36,7 +36,7 @@ "red_granite": { "raw": "gtceu:red_granite", "hardened": "tfg:rock/hardened_red_granite", - "gravel": "gtceu:red_granite_cobblestone", + "gravel": "tfg:rock/gravel_red_granite", "cobble": "gtceu:red_granite_cobblestone", "sand": "minecraft:red_sand", "sandstone": "minecraft:red_sandstone", diff --git a/kubejs/data/tfg/worldgen/biome/mars/amber_edge.json b/kubejs/data/tfg/worldgen/biome/mars/amber_edge.json index 574172873..10eb5143a 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/amber_edge.json +++ b/kubejs/data/tfg/worldgen/biome/mars/amber_edge.json @@ -74,12 +74,6 @@ "ambient": [], "axolotls": [], "creature": [ - { - "type": "tfg:sniffer", - "maxCount": 3, - "minCount": 1, - "weight": 100 - }, { "type": "tfg:wraptor", "maxCount": 4, diff --git a/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json b/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json index 1ff46117b..f4c4ad48d 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json +++ b/kubejs/data/tfg/worldgen/biome/mars/martian_mountains.json @@ -110,7 +110,7 @@ "type": "wan_ancient_beasts:crusher", "maxCount": 2, "minCount": 1, - "weight": 30 + "weight": 10 }, { "type": "wan_ancient_beasts:glider", diff --git a/kubejs/data/tfg/worldgen/biome/mars/martian_river.json b/kubejs/data/tfg/worldgen/biome/mars/martian_river.json index c3a0b1048..4050b3e2f 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/martian_river.json +++ b/kubejs/data/tfg/worldgen/biome/mars/martian_river.json @@ -119,7 +119,7 @@ "type": "wan_ancient_beasts:eater", "maxCount": 1, "minCount": 1, - "weight": 10 + "weight": 20 } ], "misc": [], diff --git a/kubejs/data/tfg/worldgen/biome/mars/rusticus_edge.json b/kubejs/data/tfg/worldgen/biome/mars/rusticus_edge.json index 5aca69444..8d667d74e 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/rusticus_edge.json +++ b/kubejs/data/tfg/worldgen/biome/mars/rusticus_edge.json @@ -74,12 +74,6 @@ "ambient": [], "axolotls": [], "creature": [ - { - "type": "tfg:sniffer", - "maxCount": 3, - "minCount": 1, - "weight": 100 - }, { "type": "tfg:wraptor", "maxCount": 4, diff --git a/kubejs/data/tfg/worldgen/biome/mars/sangnum_edge.json b/kubejs/data/tfg/worldgen/biome/mars/sangnum_edge.json index 1c1d6b0ca..c080ab50b 100644 --- a/kubejs/data/tfg/worldgen/biome/mars/sangnum_edge.json +++ b/kubejs/data/tfg/worldgen/biome/mars/sangnum_edge.json @@ -74,12 +74,6 @@ "ambient": [], "axolotls": [], "creature": [ - { - "type": "tfg:sniffer", - "maxCount": 3, - "minCount": 1, - "weight": 100 - }, { "type": "tfg:wraptor", "maxCount": 4, diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/amber_root.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/amber_root.json index 4bd283a30..1b3d707cd 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/amber_root.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/amber_root.json @@ -19,7 +19,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/blossom_berry.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/blossom_berry.json index 0c922f4de..1fbeaf9a0 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/blossom_berry.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/blossom_berry.json @@ -19,7 +19,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/bolux_mushroom.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/bolux_mushroom.json index 916748a35..c1b634b8d 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/bolux_mushroom.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/bolux_mushroom.json @@ -19,7 +19,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/cave_pumpkin.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/cave_pumpkin.json index d9101720e..fa2b4ebe8 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/cave_pumpkin.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/cave_pumpkin.json @@ -11,7 +11,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/chorus_mushroom.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/chorus_mushroom.json index ee0685243..155a94f38 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/chorus_mushroom.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/chorus_mushroom.json @@ -19,7 +19,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/shadow_berry.json b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/shadow_berry.json index f17fc0c9f..282501bcf 100644 --- a/kubejs/data/tfg/worldgen/configured_feature/mars/crop/shadow_berry.json +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/crop/shadow_berry.json @@ -19,7 +19,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/aurant_polypore.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/aurant_polypore.json new file mode 100644 index 000000000..fcb83c682 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/aurant_polypore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "tfg:attached_decorative_plant", + "config": { + "block": "betterend:aurant_polypore", + "heightRange": 6 + } + }, + "placement": [] + }, + "tries": 24, + "xz_spread": 5, + "y_spread": 0 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/bulb_moss.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/bulb_moss.json new file mode 100644 index 000000000..1cf887e13 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/bulb_moss.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "tfg:attached_decorative_plant", + "config": { + "block": "betterend:bulb_moss", + "heightRange": 6 + } + }, + "placement": [] + }, + "tries": 24, + "xz_spread": 5, + "y_spread": 0 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings.json new file mode 100644 index 000000000..ee0ee7c25 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "tfg:attached_decorative_plant", + "config": { + "block": "betterend:filalux_wings", + "heightRange": 8 + } + }, + "placement": [] + }, + "tries": 24, + "xz_spread": 5, + "y_spread": 0 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings_top.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings_top.json new file mode 100644 index 000000000..6b8cd062f --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/filalux_wings_top.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "betterend:filalux_wings", + "Properties": { + "direction": "up" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ 0, -1, 0 ], + "tag": "tfg:decorative_plant_attachable" + } + ] + } + } + ] + }, + "tries": 24, + "xz_spread": 5, + "y_spread": 4 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/surface/purple_polypore.json b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/purple_polypore.json new file mode 100644 index 000000000..e54c39f28 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/surface/purple_polypore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "tfg:attached_decorative_plant", + "config": { + "block": "betterend:purple_polypore", + "heightRange": 6 + } + }, + "placement": [] + }, + "tries": 24, + "xz_spread": 5, + "y_spread": 0 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/cave_bush.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/cave_bush.json new file mode 100644 index 000000000..d972a6322 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/cave_bush.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "tfg:mars_dirt" + } + }, + "foliage_placer": { + "type": "minecraft:bush_foliage_placer", + "offset": 0, + "height": 1, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "betterend:cave_bush" + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 1, + "height_rand_a": 0, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "beneath:wood/stripped_wood/crimson" + } + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/configured_feature/mars/tree/lucernia.json b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/lucernia.json new file mode 100644 index 000000000..b7e87f268 --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/mars/tree/lucernia.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:tree", + "config": { + "decorators": [], + "dirt_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "tfg:mars_dirt" + } + }, + "foliage_placer": { + "type": "minecraft:bush_foliage_placer", + "offset": 0, + "height": 1, + "radius": 2 + }, + "foliage_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "betterend:lucernia_leaves" + } + }, + "force_dirt": false, + "ignore_vines": true, + "minimum_size": { + "type": "minecraft:two_layers_feature_size", + "limit": 1, + "lower_size": 0, + "upper_size": 0 + }, + "trunk_placer": { + "type": "minecraft:straight_trunk_placer", + "base_height": 1, + "height_rand_a": 0, + "height_rand_b": 0 + }, + "trunk_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "beneath:wood/stripped_wood/warped" + } + } + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/noise_settings/mars_noise.json b/kubejs/data/tfg/worldgen/noise_settings/mars_noise.json index b8eaf3848..3b94b6d53 100644 --- a/kubejs/data/tfg/worldgen/noise_settings/mars_noise.json +++ b/kubejs/data/tfg/worldgen/noise_settings/mars_noise.json @@ -309,10 +309,31 @@ "secondary_depth_range": 0 }, "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "ad_astra:venus_sand" - } + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.1, + "max_threshold": 0.3 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "tfg:rock/gravel_venus" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "ad_astra:venus_sand" + } + } + ] + } }, { @@ -402,10 +423,30 @@ } }, "then_run": { - "type": "minecraft:block", - "result_state": { - "Name": "ad_astra:venus_sand" - } + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "minecraft:powder_snow", + "min_threshold": 0.1, + "max_threshold": 0.3 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "ad_astra:mars_sand" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "ad_astra:venus_sand" + } + } + ] } }, { @@ -605,8 +646,7 @@ "if_true": { "type": "minecraft:biome", "biome_is": [ - "tfg:mars/martian_mountains", - "tfg:mars/martian_hills" + "tfg:mars/martian_mountains" ] }, "then_run": { diff --git a/kubejs/data/tfg/worldgen/noise_settings/moon_noise.json b/kubejs/data/tfg/worldgen/noise_settings/moon_noise.json index 867fce4b8..b3dbf1ba7 100644 --- a/kubejs/data/tfg/worldgen/noise_settings/moon_noise.json +++ b/kubejs/data/tfg/worldgen/noise_settings/moon_noise.json @@ -627,7 +627,7 @@ { "type": "minecraft:block", "result_state": { - "Name": "ad_astra:glacio_cobblestone" + "Name": "tfg:rock/gravel_glacio" } } ] diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/amber_root.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/amber_root.json index 6ffacad5c..cff721203 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/amber_root.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/amber_root.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/blossom_berry.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/blossom_berry.json index 1a4913e22..b65df21f3 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/blossom_berry.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/blossom_berry.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/bolux_mushroom.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/bolux_mushroom.json index dc42c645f..e01c9ebf7 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/bolux_mushroom.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/bolux_mushroom.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/cave_pumpkin.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/cave_pumpkin.json index 95c6d9943..ba653ffc6 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/cave_pumpkin.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/cave_pumpkin.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/chorus_mushroom.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/chorus_mushroom.json index af59e4dc0..df6e45660 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/chorus_mushroom.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/chorus_mushroom.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/shadow_berry.json b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/shadow_berry.json index 16d39386f..bfa34e232 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/crop/shadow_berry.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/crop/shadow_berry.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/semiheavy_ammoniacal_water.json b/kubejs/data/tfg/worldgen/placed_feature/mars/semiheavy_ammoniacal_water.json index a7d454a27..28a9dce2d 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/semiheavy_ammoniacal_water.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/semiheavy_ammoniacal_water.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aeridium.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aeridium.json index f1ab0c68f..c27be9dfc 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aeridium.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aeridium.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/amber_grass.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/amber_grass.json index d9f0a1579..43f5385c9 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/amber_grass.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/amber_grass.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aurant_polypore.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aurant_polypore.json new file mode 100644 index 000000000..cadf9f243 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/aurant_polypore.json @@ -0,0 +1,23 @@ +{ + "feature": "tfg:mars/surface/aurant_polypore", + "placement": [ + { + "type": "tfc:climate", + "min_forest": "edge" + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/bulb_moss.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/bulb_moss.json new file mode 100644 index 000000000..66d29022e --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/bulb_moss.json @@ -0,0 +1,23 @@ +{ + "feature": "tfg:mars/surface/bulb_moss", + "placement": [ + { + "type": "tfc:climate", + "min_forest": "edge" + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/cave_grass.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/cave_grass.json index bc216736e..9536d4323 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/cave_grass.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/cave_grass.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/clawfern.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/clawfern.json index 575cabc94..e8ff10945 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/clawfern.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/clawfern.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_glider.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_glider.json index 9d8b87084..ba36e2be8 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_glider.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_glider.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_wraptor.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_wraptor.json index df8341b9b..646c9a653 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_wraptor.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/feather_patch_wraptor.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings.json new file mode 100644 index 000000000..d6db1c1c9 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings.json @@ -0,0 +1,23 @@ +{ + "feature": "tfg:mars/surface/filalux_wings", + "placement": [ + { + "type": "tfc:climate", + "min_forest": "edge" + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings_top.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings_top.json new file mode 100644 index 000000000..88e46fa88 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/filalux_wings_top.json @@ -0,0 +1,23 @@ +{ + "feature": "tfg:mars/surface/filalux_wings_top", + "placement": [ + { + "type": "tfc:climate", + "min_forest": "edge" + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flammalix.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flammalix.json index 60a9cb4c8..88d9e5d0d 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flammalix.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flammalix.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flint_patch.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flint_patch.json index 612346a45..007ced25e 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flint_patch.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/flint_patch.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/globulagus.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/globulagus.json index 4024e6ac6..f7a65f660 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/globulagus.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/globulagus.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lamellarium.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lamellarium.json index ebd58a9b5..83637d7cf 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lamellarium.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lamellarium.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf.json index c9c3c9566..18405f567 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf.json @@ -17,7 +17,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf_small.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf_small.json index 6367f0a5d..6b9b2605e 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf_small.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lanceleaf_small.json @@ -17,7 +17,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/large_amaranita_mushroom.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/large_amaranita_mushroom.json index a2b8fbfca..cb1b09274 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/large_amaranita_mushroom.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/large_amaranita_mushroom.json @@ -7,7 +7,7 @@ }, { "type": "tfc:climate", - "min_forest": "edge" + "max_forest": "sparse" }, { "type": "minecraft:in_square" @@ -17,7 +17,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lucernia_outer_leaves.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lucernia_outer_leaves.json index a6678f3bb..938560d33 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lucernia_outer_leaves.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lucernia_outer_leaves.json @@ -17,7 +17,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lutebus.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lutebus.json index 6a1d566b5..3912e7736 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lutebus.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/lutebus.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/orango.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/orango.json index d0442c031..a8f8151a9 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/orango.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/orango.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pitcher_plant.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pitcher_plant.json index 312f059cc..cb62ae330 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pitcher_plant.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/pitcher_plant.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/purple_polypore.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/purple_polypore.json new file mode 100644 index 000000000..2a6ecae80 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/purple_polypore.json @@ -0,0 +1,23 @@ +{ + "feature": "tfg:mars/surface/purple_polypore", + "placement": [ + { + "type": "tfc:climate", + "min_forest": "edge" + }, + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/rotten_flesh_patch.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/rotten_flesh_patch.json index e5fcb63be..91815aacb 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/rotten_flesh_patch.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/rotten_flesh_patch.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/ruscus.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/ruscus.json index 36676060e..bcd21e5e3 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/ruscus.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/ruscus.json @@ -13,7 +13,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/small_amaranita_mushroom.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/small_amaranita_mushroom.json index 3f9664d77..ff2690fe4 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/small_amaranita_mushroom.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/small_amaranita_mushroom.json @@ -7,8 +7,7 @@ }, { "type": "tfc:climate", - "min_forest": "none", - "max_forest": "normal" + "max_forest": "edge" }, { "type": "minecraft:in_square" @@ -18,7 +17,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/torchflower.json b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/torchflower.json index 04e20b88a..dba64d3f0 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/surface/torchflower.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/surface/torchflower.json @@ -3,7 +3,7 @@ "placement": [ { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" } ] } \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/basalt_delta.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/basalt_delta.json index 7beef59e2..dd615585a 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/basalt_delta.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/basalt_delta.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" }, { "type": "minecraft:block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/clay_disc.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/clay_disc.json index c49b6f888..87ac7d870 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/clay_disc.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/clay_disc.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "minecraft:biome" diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/gabbro_delta.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/gabbro_delta.json index 6c6fe370d..a3df5bbb7 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/gabbro_delta.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/gabbro_delta.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" }, { "type": "minecraft:block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/kaolin_clay_disc.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/kaolin_clay_disc.json index f36c409cf..a1c96ffb7 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/kaolin_clay_disc.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/kaolin_clay_disc.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "minecraft:biome" diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/peat_disc.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/peat_disc.json index e04ac5994..d85c18d8f 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/peat_disc.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/peat_disc.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE_WG" + "heightmap": "OCEAN_FLOOR_WG" }, { "type": "minecraft:biome" diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/red_granite_delta.json b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/red_granite_delta.json index 532b8417f..acc6c0af7 100644 --- a/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/red_granite_delta.json +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/terrain/red_granite_delta.json @@ -10,7 +10,7 @@ }, { "type": "minecraft:heightmap", - "heightmap": "WORLD_SURFACE" + "heightmap": "OCEAN_FLOOR" }, { "type": "minecraft:block_predicate_filter", diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/cave_bush.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/cave_bush.json new file mode 100644 index 000000000..bb394b22a --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/cave_bush.json @@ -0,0 +1,24 @@ +{ + "feature": "tfg:mars/tree/cave_bush", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "tfc:climate", + "min_forest": "edge", + "min_rainfall": -5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/mars/tree/lucernia.json b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/lucernia.json new file mode 100644 index 000000000..5579c12d4 --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/mars/tree/lucernia.json @@ -0,0 +1,24 @@ +{ + "feature": "tfg:mars/tree/lucernia", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 2 + }, + { + "type": "tfc:climate", + "min_forest": "edge", + "max_rainfall": -7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + }, + { + "type": "minecraft:heightmap", + "heightmap": "OCEAN_FLOOR" + } + ] +} \ No newline at end of file diff --git a/kubejs/server_scripts/ad_astra/tags.js b/kubejs/server_scripts/ad_astra/tags.js index 8a04ca2da..70cb6f834 100644 --- a/kubejs/server_scripts/ad_astra/tags.js +++ b/kubejs/server_scripts/ad_astra/tags.js @@ -272,6 +272,8 @@ const registerAdAstraBlockTags = (event) => { event.add('tfg:mars_soil', 'tfg:grass/sangnum_kaolin_mycelium') event.add('ad_astra:mars_stone_replaceables', '#tfg:mars_soil') event.add('minecraft:animals_spawnable_on', '#tfg:mars_soil') + event.add('minecraft:animals_spawnable_on', '#tfg:mars_plants') + event.add('minecraft:animals_spawnable_on', '#forge:gravel') event.add('tfc:can_carve', '#ad_astra:moon_stone_replaceables') event.add('tfc:can_carve', '#ad_astra:mars_stone_replaceables') @@ -496,6 +498,8 @@ const registerAdAstraPlacedFeatures = (event) => { event.add('tfg:mars_underground_decoration', "tfg:earth/geode/quartzite") // Vegetation + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/lucernia") + event.add("tfg:mars_global_small_plants", "tfg:mars/tree/cave_bush") event.add("tfg:mars_global_small_plants", "tfg:mars/surface/charnia") event.add("tfg:mars_global_small_plants", "tfg:mars/surface/flamaea") event.add("tfg:mars_global_small_plants", "tfg:mars/surface/lacugrove") @@ -513,6 +517,11 @@ const registerAdAstraPlacedFeatures = (event) => { event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf") event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/lanceleaf_small") + + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/bulb_moss") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/aurant_polypore") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings") + event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/amber_grass") event.add("tfg:mars_amber_vegetal_decoration", "tfg:mars/surface/flammalix") @@ -527,6 +536,12 @@ const registerAdAstraPlacedFeatures = (event) => { event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/crop/shadow_berry") event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/lucernia_outer_leaves") + + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/bulb_moss") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aurant_polypore") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/purple_polypore") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/filalux_wings") + event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/filalux_wings_top") event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/aeridium") event.add("tfg:mars_rusticus_vegetal_decoration", "tfg:mars/surface/flammalix") @@ -544,6 +559,9 @@ const registerAdAstraPlacedFeatures = (event) => { event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/small_amaranita_mushroom") event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/large_amaranita_mushroom") + + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/aurant_polypore") + event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/purple_polypore") event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/cave_grass") event.add("tfg:mars_sangnum_vegetal_decoration", "tfg:mars/surface/clawfern") diff --git a/kubejs/server_scripts/tfg/events.chunks.js b/kubejs/server_scripts/tfg/events.chunks.js index 1906d8643..efcc005c8 100644 --- a/kubejs/server_scripts/tfg/events.chunks.js +++ b/kubejs/server_scripts/tfg/events.chunks.js @@ -6,102 +6,183 @@ const $ForestType = Java.loadClass("net.dries007.tfc.world.chunkdata.ForestType" const ROCK_LAYER_HEIGHT = 40; + +// Precompute the aquifer heights as constants as this is not used +let EMPTY_AQUIFER = []; +let aquifer_i = 0; +while (aquifer_i < 16) { + EMPTY_AQUIFER.push(32); + aquifer_i++; +} + + // Bare minimum TFCEvents.createChunkDataProvider('moon', event => { - const emptyLayer = TFC.misc.lerpFloatLayer(0, 0, 0, 0); + const emptyLayer = TFC.misc.lerpFloatLayer(0, 0, 0, 0); - var aquifer = []; - let i = 0; - while (i < 16) { - aquifer.push(32); - i++; - } - var heights = []; - for (let x = 0 ; x < 16 ; x++) { - for (let z = 0 ; z < 16 ; z++) { - heights[x + 16 * z] = 80; - } - } + var heights = []; + for (let x = 0; x < 16; x++) { + for (let z = 0; z < 16; z++) { + heights[x + 16 * z] = 80; + } + } - event.partial((data, chunk) => { - data.generatePartial(emptyLayer, emptyLayer, 0, 0, 0) - }) - event.full((data, chunk) => { - data.generateFull(heights, aquifer) - }) - event.rocks((x, y, z, surfaceY, cache, rockLayers) => { - return rockLayers.sampleAtLayer(0, 0) - }) + event.partial((data, chunk) => { + data.generatePartial(emptyLayer, emptyLayer, 0, 0, 0) + }) + event.full((data, chunk) => { + data.generateFull(heights, EMPTY_AQUIFER) + }) + event.rocks((x, y, z, surfaceY, cache, rockLayers) => { + return rockLayers.sampleAtLayer(0, 0) + }) }) + +let tempLayer = TFC.misc.newOpenSimplex2D(4621678939469) + .octaves(2) + .spread(0.05) + .scaled(-10, 10) +let rainLayer = TFC.misc.newOpenSimplex2D(2846746456346) + .octaves(2) + .spread(0.05) + .scaled(-3, 3) +let forestDensityNoise = TFC.misc.newOpenSimplex2D(98713856895664) + .octaves(4) + .spread(0.0025) + .scaled(-0.2, 1.2) + .clamped(0, 1) +let forestWeirdnessNoise = TFC.misc.newOpenSimplex2D(3210378120) + .octaves(4) + .spread(0.0025) + .map(i => 1.1 * Math.abs(i)) + .clamped(0, 1) + +TFC.misc.register2DNoiseForInspection('temp', tempLayer) +TFC.misc.register2DNoiseForInspection('rain', rainLayer) +TFC.misc.register2DNoiseForInspection('forestType', forestDensityNoise) +TFC.misc.register2DNoiseForInspection('forestWeirdness', forestWeirdnessNoise) + +// Forest layer +//const forestTypeLayer = TFC.misc.uniformLayeredArea(45245235242); +//for (let i = 0; i < 3; i++) { +// forestTypeLayer.zoom(true, 19763144126).smooth(79784123632); +//} +//for (let i = 0; i < 6; i++) { +// forestTypeLayer.zoom(true, 451364589723); +//} +//forestTypeLayer +// .smooth(71214856214) +// .zoom(true, 854126548632) +// .smooth(145256147896) + +let forestLayerNoise = TFC.misc.newOpenSimplex2D(3210378120) + .octaves(2) + .spread(0.005) + .scaled(0, 1) + +// Rock layer +const rockLayer = TFC.misc.uniformLayeredArea(413567326); +for (let i = 0; i < 3; i++) { + rockLayer.zoom(true, 19763144126).smooth(79784123632); +} +for (let i = 0; i < 6; i++) { + rockLayer.zoom(true, 451364589723); +} +rockLayer + .smooth(71214856214) + .zoom(true, 854126548632) + .smooth(145256147896) + + TFCEvents.createChunkDataProvider('mars', event => { + event.partial((data, chunk) => { + let x = chunk.pos.minBlockX; + let z = chunk.pos.minBlockZ; - const rain = TFC.misc.lerpFloatLayer(0, 0, 0, 0); - const tempLayer = TFC.misc.newOpenSimplex2D(event.worldSeed + 4621678939469) - .spread(0.002) - .octaves(3) - .scaled(70, 90) - const forestLayer = TFC.misc.newOpenSimplex2D(event.worldSeed + 98713856895664) - .spread(0.00002) - .terraces(9) - .affine(6, 12) - .scaled(6, 18, 0, 1) + const avgTemp1 = calcAverage(z, global.MARS_PLANET_SIZE, global.MARS_MIN_AVG_TEMP, global.MARS_MAX_AVG_TEMP) + const avgTemp2 = calcAverage(z + 15, global.MARS_PLANET_SIZE, global.MARS_MIN_AVG_TEMP, global.MARS_MAX_AVG_TEMP) + const avgRain1 = calcAverage(x, global.MARS_PLANET_SIZE, global.MARS_MIN_AVG_RAIN, global.MARS_MAX_AVG_RAIN) + const avgRain2 = calcAverage(x + 15, global.MARS_PLANET_SIZE, global.MARS_MIN_AVG_RAIN, global.MARS_MAX_AVG_RAIN) - const rockNoise = TFC.misc.newOpenSimplex2D(event.worldSeed + 8008135) - .octaves(3) - .scaled(0x80000000, 0x7fffffff) // Integer.MIN_VALUE to Integer.MAX_VALUE - .spread(0.00001) // spread it out so the vaiance is small + let rain = TFC.misc.lerpFloatLayer( + avgRain1 + rainLayer.noise(x, z), + avgRain1 + rainLayer.noise(x, z + 15), + avgRain2 + rainLayer.noise(x + 15, z), + avgRain2 + rainLayer.noise(x + 15, z + 15) + ); + let temp = TFC.misc.lerpFloatLayer( + avgTemp1 + tempLayer.noise(x, z), + avgTemp1 + tempLayer.noise(x, z + 15), + avgTemp2 + tempLayer.noise(x + 15, z), + avgTemp2 + tempLayer.noise(x + 15, z + 15) + ); - // Precompute the aquifer heights as constants as this is not used - var aquifer = []; - let i = 0; - while (i < 16) { - aquifer.push(32); - i++; - } + data.generatePartial( + rain, + temp, + //floatToForestType(((forestTypeLayer.getAt(x, z) / 0x80000000) / 2.0) + 0.5), + floatToForestType(forestLayerNoise.noise(x, z)), + forestWeirdnessNoise.noise(x, z), // forest weirdness + forestDensityNoise.noise(x, z) // forest density + ); + }); - event.partial((data, chunk) => { - let x = chunk.pos.minBlockX; - let z = chunk.pos.minBlockZ; + event.full((data, chunk) => { + let heights = []; + for (let z = 0; z < 16; z++) { + for (let x = 0; x < 16; x++) { + heights[x + 16 * z] = chunk.getHeight($HeightMap.Types.OCEAN_FLOOR_WG, x, z); + } + } + data.generateFull(heights, EMPTY_AQUIFER); + }); - let temp = TFC.misc.lerpFloatLayer( - tempLayer.noise(x, z), - tempLayer.noise(x, z + 15), - tempLayer.noise(x + 15, z), - tempLayer.noise(x + 15, z + 15) - ); - - let forestType = $ForestType.NONE; - const forestTypeNoise = forestLayer.noise(x, z); - if (forestTypeNoise < 0.2) - forestType = $ForestType.OLD_GROWTH; - else if (forestTypeNoise < 0.4) - forestType = $ForestType.NORMAL; - else if (forestTypeNoise < 0.6) - forestType = $ForestType.EDGE; - else if (forestTypeNoise < 0.8) - forestType = $ForestType.SPARSE; - - data.generatePartial( - rain, - temp, - forestType, - forestLayer.noise(x * 78423 + 869, z), - forestTypeNoise //forestLayer.noise(x, z * 651349 - 698763) - ); - }); - - event.full((data, chunk) => { - let heights = []; - for (let z = 0; z < 16; z++) { - for (let x = 0; x < 16; x++) { - heights[x + 16 * z] = chunk.getHeight($HeightMap.Types.OCEAN_FLOOR_WG, x, z); - } - } - data.generateFull(heights, aquifer); - }); - - event.rocks((x, y, z, surfaceY, cache, rockLayers) => { - return rockLayers.sampleAtLayer(rockNoise.noise(x, z), (surfaceY - y) / ROCK_LAYER_HEIGHT); - }); + event.rocks((x, y, z, surfaceY, cache, rockSettings) => { + return rockSettings.sampleAtLayer(rockLayer.getAt(x, z), (surfaceY - y) / ROCK_LAYER_HEIGHT); + }); }) + + +/** + * @param {number} playerZ The current Z level of the player + * @param {number} scale The size of the planet, from the south pole to the north (20k on earth with default TFC settings) + * @param {number} min The average value at the poles + * @param {number} max The average value at the equator + * @returns {number} + */ +function calcAverage(playerZ, scale, min, max) { + + let relative = (playerZ / scale * -1) + 0.5; + + // relative is now 1 for peak -z, 0 for peak +z + + let smoothed = Math.cos(relative * JavaMath.PI); + + // smoothed is now -1 for peak -z, 1 for peak +z + + let halfDiff = (min - max) / -2; + + let temp = (smoothed * halfDiff) - (halfDiff - max); + + return temp; +} + + +/** + * @param {number} float A number between 0 and 1 + * @returns {$ForestType} + */ +// Rhino moment +function floatToForestType(float) { + if (float < 0.2) + return $ForestType.OLD_GROWTH; + else if (float < 0.4) + return $ForestType.NORMAL; + else if (float < 0.6) + return $ForestType.EDGE; + else if (float < 0.8) + return $ForestType.SPARSE; + else + return $ForestType.NONE; +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/events.forests.js b/kubejs/server_scripts/tfg/events.forests.js index 686924391..68f490d0d 100644 --- a/kubejs/server_scripts/tfg/events.forests.js +++ b/kubejs/server_scripts/tfg/events.forests.js @@ -8,11 +8,11 @@ TFCEvents.worldgenData(event => { // https://notenoughmail.github.io/kubejs_tfc/1.20.1/worldgen/#forest-types-map-entry // type, treeCount, groundcoverCount, perChunkChance, bushCount, hasSpoilerOldGrowth, allowsOldGrowth, leafPileCount - event.forestTypesMapEntry('none', [0, 1], 0, 0.02, 0, false, false, 0), - event.forestTypesMapEntry('sparse', [1, 3], 6, 0.2, 0, false, false, [0, 1]), - event.forestTypesMapEntry('edge', [2, 4], 15, 0.8, 1, true, false, [0, 1]), - event.forestTypesMapEntry('normal', [4, 6], 25, 1, 1, true, false, [1, 2]), - event.forestTypesMapEntry('old_growth', [5, 8], 40, 1, 2, true, true, [1, 2]) + event.forestTypesMapEntry('none', [0, 1], 1, 0.1, 0, false, false, 0), + event.forestTypesMapEntry('sparse', [0, 3], 10, 0.3, 1, false, false, [0, 1]), + event.forestTypesMapEntry('edge', [2, 5], 20, 0.8, 1, true, false, [1, 2]), + event.forestTypesMapEntry('normal', [5, 8], 35, 1, 2, true, false, [2, 3]), + event.forestTypesMapEntry('old_growth', [8, 12], 50, 1, 3, true, true, [3, 4]) ], false, placement => {} @@ -20,9 +20,10 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/crimson_forest_entry', climate => { - climate.maxTemp(-20) - climate.minTemp(-65) - climate.minRain(-10) + climate.maxTemp(-41) + climate.minTemp(-98) + climate.minRain(-12) + climate.fuzzy(true) }, 'beneath:wood/wood/crimson', // bush log 'beneath:wood/leaves/crimson', // bush leaves @@ -31,7 +32,6 @@ TFCEvents.worldgenData(event => { [ // ground cover 'minecraft:crimson_fungus', 'beneath:wood/fallen_leaves/crimson', - 'beneath:wood/leaves/crimson', 'beneath:wood/twig/crimson', 'tfg:groundcover/wraptor_feather', 'tfg:groundcover/glider_feather' @@ -44,16 +44,16 @@ TFCEvents.worldgenData(event => { null, // chance for old growth in non-old growth forests null, // chance for a fallen tree null, // chance for a dead tree - null, // true to spawn on ocean floor, false for world surface + null, // false (default) to spawn with the ocean floor heightmap, true for world surface placement => {} ) event.forestEntry('tfg:mars/warped_forest_entry', climate => { - climate.maxTemp(-20) - climate.minTemp(-65) - climate.minRain(-20) + climate.maxTemp(-39) + climate.minTemp(-101) climate.maxRain(0) + climate.fuzzy(true) }, 'beneath:wood/wood/warped', 'beneath:wood/leaves/warped', @@ -62,7 +62,6 @@ TFCEvents.worldgenData(event => { [ 'minecraft:warped_fungus', 'beneath:wood/fallen_leaves/warped', - 'beneath:wood/leaves/warped', 'beneath:wood/twig/warped', 'tfg:groundcover/wraptor_feather', 'tfg:groundcover/glider_feather' @@ -76,18 +75,16 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/aeronos_forest_entry', climate => { - climate.maxTemp(-30) - climate.minTemp(-85) - climate.minRain(-15) + climate.minTemp(-77) + climate.minRain(-14) + climate.fuzzy(true) }, 'ad_astra:aeronos_stem', 'ad_astra:aeronos_cap', - 'betterend:cave_bush', - 'betterend:cave_bush_fallen', + null, + null, [ "ad_astra:aeronos_mushroom", - 'betterend:cave_bush', - 'betterend:cave_bush_fallen', 'tfg:groundcover/wraptor_feather', 'tfg:groundcover/glider_feather', 'tfg:groundcover/aeronos_stick' @@ -101,18 +98,16 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/strophar_forest_entry', climate => { - climate.maxTemp(-20) - climate.minTemp(-80) - climate.maxRain(5) + climate.minTemp(-73) + climate.maxRain(2) + climate.fuzzy(true) }, 'ad_astra:strophar_stem', 'ad_astra:strophar_cap', - 'betterend:lucernia_leaves', - 'betterend:lucernia_leaves_fallen', + null, + null, [ "ad_astra:strophar_mushroom", - 'betterend:lucernia_leaves', - 'betterend:lucernia_leaves_fallen', 'tfg:groundcover/wraptor_feather', 'tfg:groundcover/glider_feather', 'tfg:groundcover/strophar_stick' @@ -126,18 +121,18 @@ TFCEvents.worldgenData(event => { event.forestEntry('tfg:mars/alphacene_forest_entry', climate => { - climate.minTemp(-40) + climate.minTemp(-65) + climate.fuzzy(true) }, - 'minecraft:mushroom_stem', - 'species:alphacene_mushroom_block', - 'minecraft:mushroom_stem', + null, + null, + null, null, [ "species:alphacene_mushroom", 'tfg:groundcover/wraptor_feather', 'tfg:groundcover/glider_feather', - 'tfg:groundcover/alphacene_stick', - 'tfc:groundcover/stick' + 'tfg:groundcover/alphacene_stick' ], 'species:alphacene_mushroom', 'tfg:mars/tree/alphacene_dead', diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 42819c573..c618babb6 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -995,6 +995,14 @@ const registerTFGBlockTags = (event) => { event.add('forge:mineable/wrench', 'tfg:machine_casing_aluminium_plated_steel') event.add('tfg:decorative_plant_attachable', '#minecraft:logs') + event.add('tfg:decorative_plant_attachable', 'minecraft:mushroom_stem') + event.add('tfg:decorative_plant_attachable', 'species:alphacene_mushroom_block') + event.add('tfg:decorative_plant_attachable', 'ad_astra:aeronos_cap') + event.add('tfg:decorative_plant_attachable', 'ad_astra:strophar_cap') + event.add('tfg:decorative_plant_attachable', 'minecraft:nether_wart_block') + event.add('tfg:decorative_plant_attachable', 'minecraft:warped_wart_block') + event.add('tfg:decorative_plant_attachable', 'betterend:cave_bush') + event.add('tfg:decorative_plant_attachable', 'betterend:lucernia_leaves') } //#endregion diff --git a/kubejs/startup_scripts/betterend/blocks.js b/kubejs/startup_scripts/betterend/blocks.js index 9f6b35914..106e023a9 100644 --- a/kubejs/startup_scripts/betterend/blocks.js +++ b/kubejs/startup_scripts/betterend/blocks.js @@ -139,7 +139,7 @@ function registerBetterEndBlocks(event) { leaves.soundType('azalea_leaves') leaves.tagBlock('minecraft:mineable/hoe') leaves.tagBlock('minecraft:replaceable') - // TODO: kjs-tfc 1.3.3 will have an option to disable tinting on leaves + leaves.noDynamicTinting() leaves.models((modelType, generator) => { if (modelType.layers != 8) { generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height); @@ -164,7 +164,7 @@ function registerBetterEndBlocks(event) { leaves.soundType('azalea_leaves') leaves.tagBlock('minecraft:mineable/hoe') leaves.tagBlock('minecraft:replaceable') - // TODO: kjs-tfc 1.3.3 will have an option to disable tinting on leaves + leaves.noDynamicTinting() leaves.models((modelType, generator) => { if (modelType.layers != 8) { generator.parent("tfc:block/groundcover/fallen_leaves_height" + modelType.height); diff --git a/kubejs/startup_scripts/tfc/register_climates.js b/kubejs/startup_scripts/tfc/register_climates.js index ec0317c87..bd2ff6d5a 100644 --- a/kubejs/startup_scripts/tfc/register_climates.js +++ b/kubejs/startup_scripts/tfc/register_climates.js @@ -12,6 +12,12 @@ const TWO_PI = JavaMath.PI * 2; const OXYGENATED_TEMP = 15; +global.MARS_PLANET_SIZE = 10000; +global.MARS_MIN_AVG_TEMP = -110; +global.MARS_MAX_AVG_TEMP = -15; +global.MARS_MIN_AVG_RAIN = -25; +global.MARS_MAX_AVG_RAIN = 13; + function clamp(val, min, max) { return Math.min(Math.max(val, min), max); } @@ -147,22 +153,22 @@ TFCEvents.registerClimateModel(event => { } // average of -110 at night, -15 at day - let avgTemp = calcAverage(pos.z, 10000, -110, -15); + let avgTemp = calcAverage(pos.z, global.MARS_PLANET_SIZE, -110, -15); // +- 45 based on latitude, down to -10 at bedrock - return calcCurrentTemp(avgTemp, 65, pos.y, calendarTicks, 45, -10, 0.5); + return calcCurrentTemp(avgTemp, 88, pos.y, calendarTicks, 45, -10, 0.5); }) builder.setAverageTemperatureCalculation((level, pos) => { // Earth is 10k to each pole, and mars is about half as big as earth, so 5k to each pole sounds good - return calcAverage(pos.z, 10000, -110, -15); + return calcAverage(pos.z, global.MARS_PLANET_SIZE, -110, -15); }) builder.setAverageRainfallCalculation((level, pos) => { // irl mars' poles have a snowfall of 0.13mm but that's barely noticeable here. // Use a negative rainfall to stop it snowing closer to the equator. TFC clamps negatives to zero so it's fine - return calcAverage(pos.x, 10000, 13, -25) + return calcAverage(pos.x, global.MARS_PLANET_SIZE, -25, 13) }) builder.setAirFog((level, pos, calendarTicks) => 0)