From 75ed1aab6d873ef129deea9b124dc751000aa66f Mon Sep 17 00:00:00 2001 From: catter1 Date: Mon, 7 Nov 2022 14:43:54 +0100 Subject: [PATCH] Init commit - v1.2a --- data/minecraft/dimension/the_end.json | 219 ++++ data/minecraft/dimension_type/the_end.json | 26 + .../loot_tables/blocks/amethyst_block.json | 51 + .../tags/blocks/base_stone_overworld.json | 6 + data/minecraft/tags/blocks/glowstone.json | 6 + .../minecraft/tags/blocks/infiniburn_end.json | 7 + .../blocks/sculk_replaceable_world_gen.json | 5 + .../biome/has_structure/end_city.json | 8 + .../minecraft/worldgen/biome/end_barrens.json | 50 + .../worldgen/biome/end_highlands.json | 59 + .../worldgen/biome/end_midlands.json | 50 + .../worldgen/biome/small_end_islands.json | 44 + data/minecraft/worldgen/biome/the_end.json | 45 + .../worldgen/noise_settings/end.json | 456 +++++++ .../worldgen/noise_settings/end_island.json | 169 +++ .../worldgen/structure_set/end_cities.json | 17 + .../advancements/technical/enter_gateway.json | 24 + data/nullscape/end_island.json | 11 + .../functionz/clocks/main.mcfunction | 8 + .../clocks/wait_for_player.mcfunction | 3 + .../functionz/entity/main.mcfunction | 17 + data/nullscape/functionz/load.mcfunction | 27 + .../functionz/player/main.mcfunction | 31 + .../functionz/player/tar_bog.mcfunction | 35 + .../functionz/technical/dim/route.mcfunction | 12 + .../technical/dim/to_null_island.mcfunction | 21 + .../technical/dim/to_nullscape.mcfunction | 15 + .../technical/dim/to_overworld.mcfunction | 13 + .../gateway/existing_gateway.mcfunction | 12 + .../gateway/find_safe_block.mcfunction | 9 + .../gateway/marker_teleport.mcfunction | 20 + .../technical/gateway/new_gateway.mcfunction | 13 + .../gateway/null_island_checks.mcfunction | 23 + .../gateway/null_island_pearl.mcfunction | 46 + .../gateway/nullscape_checks.mcfunction | 4 + .../gateway/nullscape_pearl.mcfunction | 13 + .../technical/gateway/pearl_end.mcfunction | 14 + .../gateway/purge_markers.mcfunction | 5 + .../technical/gateway/rift.mcfunction | 5 + .../functionz/technical/main.mcfunction | 21 + .../technical/misc/check_dimension.mcfunction | 8 + .../misc/delete_end_portal.mcfunction | 6 + .../technical/misc/rubberband.mcfunction | 5 + .../nullscape/predicates/dim/null_island.json | 6 + data/nullscape/predicates/dim/overworld.json | 6 + data/nullscape/predicates/dim/the_end.json | 6 + data/nullscape/predicates/end.json | 6 + data/nullscape/predicates/random/0_001.json | 4 + data/nullscape/predicates/random/0_01.json | 4 + data/nullscape/predicates/random/0_04.json | 4 + data/nullscape/predicates/random/0_05.json | 4 + data/nullscape/predicates/random/0_2.json | 4 + data/nullscape/predicates/random/0_4.json | 4 + data/nullscape/predicates/random/0_5.json | 4 + data/nullscape/predicates/random/1.json | 4 + data/nullscape/predicates/random/10.json | 4 + data/nullscape/predicates/random/15.json | 4 + data/nullscape/predicates/random/2.json | 4 + data/nullscape/predicates/random/20.json | 4 + data/nullscape/predicates/random/25.json | 4 + data/nullscape/predicates/random/30.json | 4 + data/nullscape/predicates/random/35.json | 4 + data/nullscape/predicates/random/3_5.json | 4 + data/nullscape/predicates/random/40.json | 4 + data/nullscape/predicates/random/5.json | 4 + data/nullscape/predicates/random/50.json | 4 + data/nullscape/predicates/random/6.json | 4 + data/nullscape/predicates/random/7.json | 4 + data/nullscape/predicates/random/70.json | 4 + data/nullscape/predicates/random/75.json | 4 + data/nullscape/predicates/random/77.json | 4 + data/nullscape/predicates/random/8.json | 4 + data/nullscape/predicates/random/80.json | 4 + data/nullscape/predicates/random/85.json | 4 + data/nullscape/predicates/random/87.json | 4 + data/nullscape/predicates/random/90.json | 4 + data/nullscape/predicates/random/95.json | 4 + data/nullscape/predicates/random/96.json | 4 + data/nullscape/predicates/random/97.json | 4 + data/nullscape/predicates/random/98.json | 4 + data/nullscape/predicates/random/99.json | 4 + .../predicates/random/other/1_x.json | 20 + data/nullscape/predicates/random/other/x.json | 18 + data/nullscape/predicates/riftspace.json | 6 + data/nullscape/predicates/tar_bog.json | 9 + data/nullscape/structures/destroy1.nbt | Bin 0 -> 531904 bytes data/nullscape/structures/destroy_start.nbt | Bin 0 -> 531932 bytes .../nullscape/structures/gateway_platform.nbt | Bin 0 -> 1138 bytes .../structures/gateway_platform2.nbt | Bin 0 -> 9677 bytes .../structures/rift/bottom_start.nbt | Bin 0 -> 294 bytes data/nullscape/structures/rift/gateway1.nbt | Bin 0 -> 5005 bytes data/nullscape/structures/rift/gateway2.nbt | Bin 0 -> 395 bytes data/nullscape/structures/rift/gateway3.nbt | Bin 0 -> 944 bytes .../structures/rift/gateway_neutral1.nbt | Bin 0 -> 969 bytes .../structures/rift/gateway_neutral2.nbt | Bin 0 -> 752 bytes .../structures/rift/gateway_shadow1.nbt | Bin 0 -> 627 bytes .../structures/rift/gateway_shadow2.nbt | Bin 0 -> 1371 bytes data/nullscape/structures/rift/start.nbt | Bin 0 -> 247 bytes data/nullscape/structures/skeleton/1.nbt | Bin 0 -> 1744 bytes data/nullscape/structures/skeleton/2.nbt | Bin 0 -> 1836 bytes data/nullscape/structures/skeleton/3.nbt | Bin 0 -> 1796 bytes data/nullscape/structures/skeleton/4.nbt | Bin 0 -> 1831 bytes data/nullscape/structures/skeleton/5.nbt | Bin 0 -> 2270 bytes data/nullscape/structures/skeleton/6.nbt | Bin 0 -> 2219 bytes data/nullscape/structures/skeleton/7.nbt | Bin 0 -> 2279 bytes data/nullscape/structures/skeleton/8.nbt | Bin 0 -> 2237 bytes data/nullscape/tags/blocks/amethyst_cut.json | 10 + data/nullscape/tags/blocks/amethyst_dx.json | 14 + data/nullscape/tags/blocks/brain_coral.json | 6 + data/nullscape/tags/blocks/coral.json | 9 + .../tags/blocks/crystal_amethyst.json | 10 + .../nullscape/tags/blocks/crystal_crying.json | 9 + .../tags/blocks/crystal_obsidian.json | 8 + data/nullscape/tags/blocks/dead_corals.json | 10 + data/nullscape/tags/blocks/end_bottom.json | 7 + data/nullscape/tags/blocks/end_soil.json | 7 + data/nullscape/tags/blocks/end_stone.json | 6 + data/nullscape/tags/blocks/glowstone.json | 6 + data/nullscape/tags/blocks/rift_blocks.json | 9 + data/nullscape/tags/blocks/smooth_basalt.json | 6 + data/nullscape/tags/blocks/void_air.json | 6 + .../tags/entity_types/not_teleportable.json | 11 + .../worldgen/biome/crystal_peaks.json | 63 + .../nullscape/worldgen/biome/shadowlands.json | 91 ++ .../worldgen/biome/void_barrens.json | 50 + .../worldgen/configured_carver/canyon.json | 80 ++ .../worldgen/configured_carver/rift.json | 60 + .../worldgen/configured_carver/shatter.json | 77 ++ .../worldgen/configured_carver/shatter1.json | 78 ++ .../configured_carver/shatter_huge.json | 77 ++ .../worldgen/configured_carver/strip.json | 82 ++ .../worldgen/configured_carver/strip2.json | 81 ++ .../worldgen/configured_carver/strip3.json | 81 ++ .../worldgen/configured_carver/strip4.json | 81 ++ .../configured_feature/asteroid_carver.json | 23 + .../boneyard/bone_tree.json | 138 ++ .../configured_feature/boneyard/fire.json | 56 + .../configured_feature/boneyard/pillar_1.json | 50 + .../configured_feature/boneyard/pillar_2.json | 166 +++ .../configured_feature/boneyard/pillar_3.json | 113 ++ .../configured_feature/boneyard/pillar_4.json | 219 ++++ .../configured_feature/boneyard/pillars.json | 20 + .../boneyard/smooth_basalt.json | 71 + .../boneyard/smooth_basalt_dx.json | 85 ++ .../boneyard/smooth_basalt_more.json | 74 ++ .../boneyard/soul_sand.json | 163 +++ .../configured_feature/chorus_light.json | 4 + .../configured_feature/chorus_plant.json | 4 + .../configured_feature/chorus_quadratic.json | 4 + .../configured_feature/crystal/amethyst.json | 75 ++ .../crystal/blackstone.json | 75 ++ .../configured_feature/crystal/crying.json | 108 ++ .../crystal/half_crying.json | 108 ++ .../crystal/inverse/amethyst.json | 75 ++ .../crystal/inverse/blackstone.json | 75 ++ .../crystal/inverse/crying.json | 108 ++ .../crystal/inverse/half_crying.json | 108 ++ .../crystal/inverse/obsidian.json | 75 ++ .../crystal/light_down.json | 60 + .../configured_feature/crystal/light_up.json | 60 + .../configured_feature/crystal/obsidian.json | 75 ++ .../configured_feature/delta/delta2.json | 28 + .../destroy_everything.json | 12 + .../configured_feature/float/asteroid.json | 105 ++ .../float/asteroid_special.json | 320 +++++ .../float/end_island_decorated.json | 7 + .../float/end_island_decorated_void.json | 7 + .../configured_feature/float/inv.json | 75 ++ .../glowstone/patch_start.json | 38 + .../configured_feature/glowstone/roots.json | 157 +++ .../glowstone/roots_first.json | 127 ++ .../configured_feature/glowstone/tree.json | 152 +++ .../configured_feature/glowstone/tree2.json | 152 +++ .../configured_feature/glowstone/tree_d1.json | 81 ++ .../highland/blackstone_bottom.json | 83 ++ .../highland/blackstone_stalactite.json | 83 ++ .../highland/blackstone_top.json | 83 ++ .../mountain/chorus_plant.json | 4 + .../configured_feature/mountain/mountain.json | 75 ++ .../mountain/mountain_inv.json | 75 ++ .../mountain/mountain_inv_less.json | 75 ++ .../mountain/mountain_less.json | 75 ++ .../configured_feature/mountain/pillar.json | 79 ++ .../mountain/pillar_down.json | 79 ++ .../configured_feature/rift/base.json | 12 + .../configured_feature/rift/blackstone.json | 75 ++ .../configured_feature/rift/cracks_1.json | 7 + .../configured_feature/rift/cracks_2.json | 7 + .../configured_feature/rift/cracks_3.json | 7 + .../configured_feature/rift/cracks_4.json | 7 + .../configured_feature/rift/cracks_5.json | 7 + .../rift/cracks_crying.json | 12 + .../rift/cracks_crying_2.json | 12 + .../configured_feature/rift/cracks_start.json | 7 + .../configured_feature/rift/rift.json | 58 + .../rift/rift_crying_obsidian.json | 19 + .../configured_feature/rift/rift_gateway.json | 11 + .../rift/rift_obsidian.json | 18 + .../rift/rift_obsidian_spread.json | 18 + .../configured_feature/rift/rift_sucks.json | 58 + .../rift/toast_feature.json | 11 + .../configured_feature/shadow/amethyst1.json | 7 + .../configured_feature/shadow/amethyst2.json | 7 + .../configured_feature/shadow/amethyst3.json | 7 + .../configured_feature/shadow/amethyst4.json | 7 + .../shadow/amethyst_base.json | 202 +++ .../configured_feature/shadow/basalt.json | 48 + .../configured_feature/shadow/blackstone.json | 48 + .../configured_feature/shadow/bone_tree.json | 140 ++ .../shadow/bone_trees1.json | 20 + .../shadow/coral_ceiling.json | 80 ++ .../shadow/coral_surface.json | 80 ++ .../configured_feature/shadow/droop.json | 73 ++ .../configured_feature/shadow/pillar.json | 91 ++ .../shadow/pillar_down.json | 91 ++ .../shadow/simple_coral.json | 100 ++ .../configured_feature/shattered/basalt.json | 18 + .../shattered/blackstone.json | 27 + .../configured_feature/shattered/crying.json | 19 + .../worldgen/configured_feature/tar/base.json | 12 + .../configured_feature/tar/cracks_1.json | 7 + .../configured_feature/tar/cracks_2.json | 7 + .../configured_feature/tar/cracks_3.json | 7 + .../configured_feature/tar/cracks_4.json | 7 + .../configured_feature/tar/cracks_5.json | 7 + .../configured_feature/tar/cracks_start.json | 7 + .../configured_feature/tar/glass_column.json | 58 + .../configured_feature/tar/tar_pit.json | 67 + .../tar/tar_pit_glowing.json | 262 ++++ .../configured_feature/tar/tar_pits.json | 12 + .../configured_feature/void/void_94.json | 9 + .../configured_feature/void/void_95.json | 9 + .../configured_feature/void/void_96.json | 9 + .../blackstone.json | 14 + .../configured_surface_builder/coral.json | 14 + .../density_function/base/base_3d_noise.json | 55 + .../density_function/base/continents.json | 48 + .../worldgen/density_function/base/depth.json | 335 +++++ .../density_function/base/factor.json | 77 ++ .../worldgen/density_function/base/mem.txt | 40 + .../density_function/base/sloped_cheese.json | 208 +++ .../density_function/brittleness/shatter.json | 96 ++ .../density_function/density/density.json | 24 + .../worldgen/density_function/depth.json | 351 +++++ .../density_function/elasticity/global.json | 24 + .../density_function/elasticity/x.json | 45 + .../density_function/elasticity/x_noise.json | 10 + .../density_function/elasticity/z.json | 45 + .../density_function/elasticity/z_noise.json | 10 + .../density_function/island/bubble.json | 38 + .../density_function/island/bubble2.json | 38 + .../island/emergency_exit.json | 33 + .../density_function/island/island.json | 96 ++ .../density_function/island/ring1_offset.json | 19 + .../density_function/island/ring1_sync.json | 56 + .../density_function/island/ring2_offset.json | 19 + .../density_function/island/ring2_sync.json | 56 + .../density_function/island/ring3_offset.json | 19 + .../density_function/island/ring3_sync.json | 56 + .../density_function/island/ring4_offset.json | 19 + .../density_function/island/ring4_sync.json | 56 + .../density_function/island/ring5_offset.json | 19 + .../density_function/island/ring5_sync.json | 56 + .../density_function/island/ring6_offset.json | 19 + .../density_function/island/ring6_sync.json | 56 + .../island_backup/bubble.json | 38 + .../island_backup/emergency_exit.json | 33 + .../island_backup/island.json | 67 + .../island_backup/ring1_offset.json | 19 + .../island_backup/ring1_sync.json | 56 + .../island_backup/ring2_offset.json | 19 + .../island_backup/ring2_sync.json | 56 + .../island_backup/ring3_offset.json | 19 + .../island_backup/ring3_sync.json | 56 + .../island_backup/ring4_offset.json | 19 + .../island_backup/ring4_sync.json | 56 + .../island_backup/ring5_offset.json | 19 + .../island_backup/ring5_sync.json | 56 + .../island_backup/ring6_offset.json | 19 + .../island_backup/ring6_sync.json | 56 + .../malleability/flatness.json | 23 + .../malleability/flatness_base.json | 21 + .../density_function/malleability/meme.txt | 14 + .../porosity/bubble_large.json | 20 + .../porosity/bubble_medium.json | 20 + .../porosity/bubble_small.json | 20 + .../density_function/porosity/cheese.json | 12 + .../density_function/porosity/influence.json | 28 + .../porosity/influence_add.json | 28 + .../porosity/influence_large.json | 23 + .../porosity/influence_medium.json | 25 + .../porosity/influence_small.json | 23 + .../porosity/shift/global.json | 24 + .../density_function/porosity/shift/x.json | 45 + .../porosity/shift/x_noise.json | 10 + .../density_function/porosity/shift/y.json | 45 + .../porosity/shift/y_noise.json | 10 + .../density_function/porosity/shift/z.json | 45 + .../porosity/shift/z_noise.json | 10 + .../porosity_backup/bubble_large.json | 20 + .../porosity_backup/bubble_medium.json | 20 + .../porosity_backup/bubble_small.json | 20 + .../porosity_backup/cheese.json | 12 + .../porosity_backup/influence.json | 28 + .../porosity_backup/influence_add.json | 28 + .../porosity_backup/influence_large.json | 23 + .../porosity_backup/influence_medium.json | 67 + .../porosity_backup/influence_small.json | 23 + .../density_function/sharpness/points.json | 95 ++ .../density_function/sloped_cheese.json | 214 +++ .../density_function/special/hollow.json | 26 + .../density_function/void/emergency_exit.json | 33 + .../void/funny_noise_code.zip | Bin 0 -> 9278 bytes .../density_function/void/ring1_offset.json | 22 + .../density_function/void/ring1_sync.json | 43 + .../density_function/void/ring2_offset.json | 22 + .../density_function/void/ring2_sync.json | 43 + .../density_function/void/ring3_offset.json | 22 + .../density_function/void/ring3_sync.json | 43 + .../density_function/void/ring4_offset.json | 22 + .../density_function/void/ring4_sync.json | 43 + .../density_function/void/ring5_offset.json | 22 + .../density_function/void/ring5_sync.json | 43 + .../density_function/void/ring6_offset.json | 22 + .../density_function/void/ring6_sync.json | 43 + .../density_function/void/void_gauntlet.json | 39 + .../worldgen/dragon_skeleton_boneyard.json | 17 + .../worldgen/noise/crystal/surface.json | 11 + .../worldgen/noise/island/ring1.json | 6 + .../worldgen/noise/island/ring2.json | 6 + .../worldgen/noise/island/ring3.json | 6 + .../worldgen/noise/island/ring4.json | 6 + .../worldgen/noise/island/ring5.json | 6 + .../worldgen/noise/island/ring6.json | 6 + .../worldgen/noise/island/shift_x.json | 6 + .../worldgen/noise/island/shift_y.json | 6 + .../worldgen/noise/island/shift_z.json | 6 + .../material/effect/brittleness/crack.json | 9 + .../material/effect/brittleness/crack2.json | 9 + .../effect/porosity/bubble_large.json | 7 + .../effect/porosity/bubble_medium.json | 7 + .../effect/porosity/bubble_small.json | 7 + .../effect/porosity/distortion_x.json | 8 + .../effect/porosity/distortion_y.json | 8 + .../effect/porosity/distortion_z.json | 8 + .../material/effect/sharpness/point.json | 7 + .../noise/material/effect/sharpness/x.json | 6 + .../noise/material/effect/sharpness/y.json | 6 + .../noise/material/effect/sharpness/z.json | 6 + .../noise/material/property/brittleness.json | 6 + .../noise/material/property/density.json | 7 + .../noise/material/property/elasticity.json | 6 + .../noise/material/property/hardness.json | 8 + .../noise/material/property/malleability.json | 7 + .../noise/material/property/porosity.json | 7 + .../noise/material/property/sharpness.json | 8 + .../sub_property/elasticity/differential.json | 8 + .../elasticity/scaling_modulator.json | 8 + .../sub_property/elasticity/x_strength.json | 6 + .../sub_property/elasticity/y_strength.json | 6 + .../sub_property/elasticity/z_strength.json | 6 + .../sub_property/malleability/x_variance.json | 7 + .../sub_property/porosity/distortion.json | 8 + .../porosity/influence_large.json | 7 + .../porosity/influence_medium.json | 7 + .../porosity/influence_small.json | 7 + .../sub_property/porosity/inversion.json | 8 + .../worldgen/noise/math/base_3d_old.txt | 49 + .../worldgen/noise/math/base_terrain.json | 8 + .../worldgen/noise/math/shift_x.json | 9 + .../worldgen/noise/math/shift_y.json | 9 + .../worldgen/noise/math/shift_z.json | 9 + .../worldgen/noise/math/terrain_default.json | 8 + .../worldgen/noise/shadowlands/brain.json | 10 + .../worldgen/noise/shadowlands/bubble.json | 10 + .../worldgen/noise/shadowlands/fire.json | 10 + .../worldgen/noise/shadowlands/horn.json | 10 + .../worldgen/noise/shadowlands/tube.json | 10 + .../worldgen/noise/terrain/base_terrain.json | 8 + .../noise/terrain/continentalness.json | 10 + .../worldgen/noise/terrain/temperature.json | 11 + .../worldgen/noise/terrain/vegetation.json | 11 + data/nullscape/worldgen/noise/void/ring1.json | 6 + data/nullscape/worldgen/noise/void/ring2.json | 6 + data/nullscape/worldgen/noise/void/ring3.json | 6 + data/nullscape/worldgen/noise/void/ring4.json | 6 + data/nullscape/worldgen/noise/void/ring5.json | 6 + data/nullscape/worldgen/noise/void/ring6.json | 6 + .../obsolete_feature/crystal/amethyst.json | 58 + .../obsolete_feature/crystal/blackstone.json | 58 + .../obsolete_feature/crystal/crying.json | 58 + .../obsolete_feature/crystal/half_crying.json | 58 + .../crystal/inverse/amethyst.json | 58 + .../crystal/inverse/blackstone.json | 58 + .../crystal/inverse/crying.json | 58 + .../crystal/inverse/half_crying.json | 58 + .../crystal/inverse/obsidian.json | 58 + .../obsolete_feature/crystal/light_down.json | 84 ++ .../obsolete_feature/crystal/light_up.json | 84 ++ .../obsolete_feature/crystal/obsidian.json | 58 + .../placed_feature/asteroid_carver.json | 4 + .../placed_feature/boneyard/bone_tree.json | 4 + .../placed_feature/boneyard/fire.json | 44 + .../placed_feature/boneyard/pillar_1.json | 29 + .../placed_feature/boneyard/pillar_2.json | 33 + .../placed_feature/boneyard/pillar_3.json | 33 + .../placed_feature/boneyard/pillar_4.json | 33 + .../placed_feature/boneyard/pillars.json | 24 + .../boneyard/smooth_basalt.json | 60 + .../boneyard/smooth_basalt_dx.json | 60 + .../boneyard/smooth_basalt_more.json | 60 + .../placed_feature/boneyard/soul_sand.json | 60 + .../worldgen/placed_feature/chorus_light.json | 22 + .../worldgen/placed_feature/chorus_plant.json | 12 + .../placed_feature/chorus_quadratic.json | 42 + .../placed_feature/chorus_variation.json | 28 + .../placed_feature/crystal/crystal.json | 1147 +++++++++++++++++ .../placed_feature/crystal/crystal2.json | 1050 +++++++++++++++ .../worldgen/placed_feature/delta/delta2.json | 9 + .../placed_feature/destroy_everything.json | 20 + .../placed_feature/float/asteroid.json | 57 + .../float/end_island_decorated.json | 40 + .../float/end_island_decorated_void.json | 40 + .../worldgen/placed_feature/float/inv.json | 60 + .../placed_feature/glowstone/patch_start.json | 54 + .../placed_feature/glowstone/roots.json | 82 ++ .../placed_feature/glowstone/roots_first.json | 58 + .../placed_feature/glowstone/tree.json | 56 + .../placed_feature/glowstone/tree2.json | 56 + .../placed_feature/glowstone/tree_d1.json | 46 + .../highland/glowstone_patch.json | 154 +++ .../highland/glowstone_tree.json | 465 +++++++ .../placed_feature/highland/patch_bottom.json | 189 +++ .../placed_feature/infested/sculk.json | 42 + .../placed_feature/infested/tendril.json | 551 ++++++++ .../placed_feature/mountain/chorus_plant.json | 19 + .../placed_feature/mountain/mountain.json | 52 + .../placed_feature/mountain/mountain_inv.json | 52 + .../mountain/mountain_inv_less.json | 52 + .../mountain/mountain_less.json | 52 + .../placed_feature/mountain/pillar.json | 66 + .../placed_feature/mountain/pillar_down.json | 66 + .../worldgen/placed_feature/rift/base.json | 4 + .../placed_feature/rift/blackstone.json | 58 + .../placed_feature/rift/cracks_1.json | 34 + .../placed_feature/rift/cracks_2.json | 34 + .../placed_feature/rift/cracks_3.json | 34 + .../placed_feature/rift/cracks_4.json | 34 + .../placed_feature/rift/cracks_5.json | 34 + .../placed_feature/rift/cracks_crying.json | 50 + .../placed_feature/rift/cracks_crying_2.json | 42 + .../placed_feature/rift/cracks_start.json | 21 + .../worldgen/placed_feature/rift/rift.json | 31 + .../rift/rift_crying_obsidian.json | 9 + .../placed_feature/rift/rift_gateway.json | 52 + .../placed_feature/rift/rift_obsidian.json | 9 + .../rift/rift_obsidian_spread.json | 13 + .../placed_feature/rift/rift_sucks.json | 31 + .../placed_feature/rift/toast_feature.json | 47 + .../placed_feature/shadow/amethyst1.json | 49 + .../placed_feature/shadow/amethyst2.json | 49 + .../placed_feature/shadow/amethyst3.json | 49 + .../placed_feature/shadow/amethyst4.json | 49 + .../placed_feature/shadow/amethyst_base.json | 19 + .../placed_feature/shadow/basalt.json | 42 + .../placed_feature/shadow/blackstone.json | 42 + .../placed_feature/shadow/bone_tree.json | 4 + .../placed_feature/shadow/bone_trees1.json | 67 + .../placed_feature/shadow/coral_ceiling.json | 28 + .../placed_feature/shadow/coral_surface.json | 28 + .../worldgen/placed_feature/shadow/droop.json | 45 + .../placed_feature/shadow/pillar.json | 55 + .../placed_feature/shadow/pillar_down.json | 55 + .../placed_feature/shadow/pillars_coral.json | 388 ++++++ .../placed_feature/shadow/shadow_cut.json | 263 ++++ .../placed_feature/shadow/simple_coral.json | 44 + .../placed_feature/shadow/vegetation.json | 37 + .../placed_feature/shattered/basalt.json | 19 + .../placed_feature/shattered/blackstone.json | 19 + .../placed_feature/shattered/crying.json | 19 + .../worldgen/placed_feature/tar/base.json | 4 + .../worldgen/placed_feature/tar/cracks_1.json | 34 + .../worldgen/placed_feature/tar/cracks_2.json | 34 + .../worldgen/placed_feature/tar/cracks_3.json | 34 + .../worldgen/placed_feature/tar/cracks_4.json | 34 + .../worldgen/placed_feature/tar/cracks_5.json | 34 + .../placed_feature/tar/cracks_start.json | 21 + .../placed_feature/tar/glass_column.json | 4 + .../worldgen/placed_feature/tar/tar_pit.json | 4 + .../placed_feature/tar/tar_pit_glowing.json | 4 + .../worldgen/placed_feature/tar/tar_pits.json | 54 + .../worldgen/placed_feature/void/void_94.json | 4 + .../worldgen/placed_feature/void/void_95.json | 4 + .../worldgen/placed_feature/void/void_96.json | 4 + .../processor_list/disintegrate_20.json | 22 + .../processor_list/disintegrate_50.json | 22 + .../processor_list/disintegrate_80.json | 22 + .../processor_list/void_suppression.json | 21 + .../worldgen/structure/dragon_skeleton.json | 22 + .../structure_set/dragon_skeleton.json | 17 + .../template_pool/dragon_skeleton.json | 300 +++++ .../dragon_skeleton_boneyard.json | 300 +++++ license.txt | 50 + pack.mcmeta | 6 + pack.png | Bin 0 -> 36816 bytes 505 files changed, 22373 insertions(+) create mode 100755 data/minecraft/dimension/the_end.json create mode 100755 data/minecraft/dimension_type/the_end.json create mode 100755 data/minecraft/loot_tables/blocks/amethyst_block.json create mode 100755 data/minecraft/tags/blocks/base_stone_overworld.json create mode 100755 data/minecraft/tags/blocks/glowstone.json create mode 100755 data/minecraft/tags/blocks/infiniburn_end.json create mode 100755 data/minecraft/tags/blocks/sculk_replaceable_world_gen.json create mode 100755 data/minecraft/tags/worldgen/biome/has_structure/end_city.json create mode 100755 data/minecraft/worldgen/biome/end_barrens.json create mode 100755 data/minecraft/worldgen/biome/end_highlands.json create mode 100755 data/minecraft/worldgen/biome/end_midlands.json create mode 100755 data/minecraft/worldgen/biome/small_end_islands.json create mode 100755 data/minecraft/worldgen/biome/the_end.json create mode 100755 data/minecraft/worldgen/noise_settings/end.json create mode 100755 data/minecraft/worldgen/noise_settings/end_island.json create mode 100755 data/minecraft/worldgen/structure_set/end_cities.json create mode 100755 data/nullscape/advancements/technical/enter_gateway.json create mode 100755 data/nullscape/end_island.json create mode 100755 data/nullscape/functionz/clocks/main.mcfunction create mode 100755 data/nullscape/functionz/clocks/wait_for_player.mcfunction create mode 100755 data/nullscape/functionz/entity/main.mcfunction create mode 100755 data/nullscape/functionz/load.mcfunction create mode 100755 data/nullscape/functionz/player/main.mcfunction create mode 100755 data/nullscape/functionz/player/tar_bog.mcfunction create mode 100755 data/nullscape/functionz/technical/dim/route.mcfunction create mode 100755 data/nullscape/functionz/technical/dim/to_null_island.mcfunction create mode 100755 data/nullscape/functionz/technical/dim/to_nullscape.mcfunction create mode 100755 data/nullscape/functionz/technical/dim/to_overworld.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/existing_gateway.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/find_safe_block.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/marker_teleport.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/new_gateway.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/null_island_checks.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/null_island_pearl.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/nullscape_checks.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/nullscape_pearl.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/pearl_end.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/purge_markers.mcfunction create mode 100755 data/nullscape/functionz/technical/gateway/rift.mcfunction create mode 100755 data/nullscape/functionz/technical/main.mcfunction create mode 100755 data/nullscape/functionz/technical/misc/check_dimension.mcfunction create mode 100755 data/nullscape/functionz/technical/misc/delete_end_portal.mcfunction create mode 100755 data/nullscape/functionz/technical/misc/rubberband.mcfunction create mode 100755 data/nullscape/predicates/dim/null_island.json create mode 100755 data/nullscape/predicates/dim/overworld.json create mode 100755 data/nullscape/predicates/dim/the_end.json create mode 100755 data/nullscape/predicates/end.json create mode 100755 data/nullscape/predicates/random/0_001.json create mode 100755 data/nullscape/predicates/random/0_01.json create mode 100755 data/nullscape/predicates/random/0_04.json create mode 100755 data/nullscape/predicates/random/0_05.json create mode 100755 data/nullscape/predicates/random/0_2.json create mode 100755 data/nullscape/predicates/random/0_4.json create mode 100755 data/nullscape/predicates/random/0_5.json create mode 100755 data/nullscape/predicates/random/1.json create mode 100755 data/nullscape/predicates/random/10.json create mode 100755 data/nullscape/predicates/random/15.json create mode 100755 data/nullscape/predicates/random/2.json create mode 100755 data/nullscape/predicates/random/20.json create mode 100755 data/nullscape/predicates/random/25.json create mode 100755 data/nullscape/predicates/random/30.json create mode 100755 data/nullscape/predicates/random/35.json create mode 100755 data/nullscape/predicates/random/3_5.json create mode 100755 data/nullscape/predicates/random/40.json create mode 100755 data/nullscape/predicates/random/5.json create mode 100755 data/nullscape/predicates/random/50.json create mode 100755 data/nullscape/predicates/random/6.json create mode 100755 data/nullscape/predicates/random/7.json create mode 100755 data/nullscape/predicates/random/70.json create mode 100755 data/nullscape/predicates/random/75.json create mode 100755 data/nullscape/predicates/random/77.json create mode 100755 data/nullscape/predicates/random/8.json create mode 100755 data/nullscape/predicates/random/80.json create mode 100755 data/nullscape/predicates/random/85.json create mode 100755 data/nullscape/predicates/random/87.json create mode 100755 data/nullscape/predicates/random/90.json create mode 100755 data/nullscape/predicates/random/95.json create mode 100755 data/nullscape/predicates/random/96.json create mode 100755 data/nullscape/predicates/random/97.json create mode 100755 data/nullscape/predicates/random/98.json create mode 100755 data/nullscape/predicates/random/99.json create mode 100755 data/nullscape/predicates/random/other/1_x.json create mode 100755 data/nullscape/predicates/random/other/x.json create mode 100755 data/nullscape/predicates/riftspace.json create mode 100755 data/nullscape/predicates/tar_bog.json create mode 100755 data/nullscape/structures/destroy1.nbt create mode 100755 data/nullscape/structures/destroy_start.nbt create mode 100755 data/nullscape/structures/gateway_platform.nbt create mode 100755 data/nullscape/structures/gateway_platform2.nbt create mode 100755 data/nullscape/structures/rift/bottom_start.nbt create mode 100755 data/nullscape/structures/rift/gateway1.nbt create mode 100755 data/nullscape/structures/rift/gateway2.nbt create mode 100755 data/nullscape/structures/rift/gateway3.nbt create mode 100755 data/nullscape/structures/rift/gateway_neutral1.nbt create mode 100755 data/nullscape/structures/rift/gateway_neutral2.nbt create mode 100755 data/nullscape/structures/rift/gateway_shadow1.nbt create mode 100755 data/nullscape/structures/rift/gateway_shadow2.nbt create mode 100755 data/nullscape/structures/rift/start.nbt create mode 100644 data/nullscape/structures/skeleton/1.nbt create mode 100644 data/nullscape/structures/skeleton/2.nbt create mode 100644 data/nullscape/structures/skeleton/3.nbt create mode 100644 data/nullscape/structures/skeleton/4.nbt create mode 100644 data/nullscape/structures/skeleton/5.nbt create mode 100644 data/nullscape/structures/skeleton/6.nbt create mode 100644 data/nullscape/structures/skeleton/7.nbt create mode 100644 data/nullscape/structures/skeleton/8.nbt create mode 100755 data/nullscape/tags/blocks/amethyst_cut.json create mode 100755 data/nullscape/tags/blocks/amethyst_dx.json create mode 100755 data/nullscape/tags/blocks/brain_coral.json create mode 100755 data/nullscape/tags/blocks/coral.json create mode 100755 data/nullscape/tags/blocks/crystal_amethyst.json create mode 100755 data/nullscape/tags/blocks/crystal_crying.json create mode 100755 data/nullscape/tags/blocks/crystal_obsidian.json create mode 100755 data/nullscape/tags/blocks/dead_corals.json create mode 100755 data/nullscape/tags/blocks/end_bottom.json create mode 100755 data/nullscape/tags/blocks/end_soil.json create mode 100755 data/nullscape/tags/blocks/end_stone.json create mode 100755 data/nullscape/tags/blocks/glowstone.json create mode 100755 data/nullscape/tags/blocks/rift_blocks.json create mode 100755 data/nullscape/tags/blocks/smooth_basalt.json create mode 100755 data/nullscape/tags/blocks/void_air.json create mode 100755 data/nullscape/tags/entity_types/not_teleportable.json create mode 100755 data/nullscape/worldgen/biome/crystal_peaks.json create mode 100755 data/nullscape/worldgen/biome/shadowlands.json create mode 100755 data/nullscape/worldgen/biome/void_barrens.json create mode 100755 data/nullscape/worldgen/configured_carver/canyon.json create mode 100755 data/nullscape/worldgen/configured_carver/rift.json create mode 100755 data/nullscape/worldgen/configured_carver/shatter.json create mode 100755 data/nullscape/worldgen/configured_carver/shatter1.json create mode 100755 data/nullscape/worldgen/configured_carver/shatter_huge.json create mode 100755 data/nullscape/worldgen/configured_carver/strip.json create mode 100755 data/nullscape/worldgen/configured_carver/strip2.json create mode 100755 data/nullscape/worldgen/configured_carver/strip3.json create mode 100755 data/nullscape/worldgen/configured_carver/strip4.json create mode 100755 data/nullscape/worldgen/configured_feature/asteroid_carver.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/bone_tree.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/fire.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/pillar_1.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/pillar_2.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/pillar_3.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/pillar_4.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/pillars.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/smooth_basalt.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/smooth_basalt_dx.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/smooth_basalt_more.json create mode 100755 data/nullscape/worldgen/configured_feature/boneyard/soul_sand.json create mode 100755 data/nullscape/worldgen/configured_feature/chorus_light.json create mode 100755 data/nullscape/worldgen/configured_feature/chorus_plant.json create mode 100755 data/nullscape/worldgen/configured_feature/chorus_quadratic.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/amethyst.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/blackstone.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/crying.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/half_crying.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/inverse/amethyst.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/inverse/blackstone.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/inverse/crying.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/inverse/half_crying.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/inverse/obsidian.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/light_down.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/light_up.json create mode 100755 data/nullscape/worldgen/configured_feature/crystal/obsidian.json create mode 100755 data/nullscape/worldgen/configured_feature/delta/delta2.json create mode 100755 data/nullscape/worldgen/configured_feature/destroy_everything.json create mode 100755 data/nullscape/worldgen/configured_feature/float/asteroid.json create mode 100755 data/nullscape/worldgen/configured_feature/float/asteroid_special.json create mode 100755 data/nullscape/worldgen/configured_feature/float/end_island_decorated.json create mode 100755 data/nullscape/worldgen/configured_feature/float/end_island_decorated_void.json create mode 100755 data/nullscape/worldgen/configured_feature/float/inv.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/patch_start.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/roots.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/roots_first.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/tree.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/tree2.json create mode 100755 data/nullscape/worldgen/configured_feature/glowstone/tree_d1.json create mode 100755 data/nullscape/worldgen/configured_feature/highland/blackstone_bottom.json create mode 100755 data/nullscape/worldgen/configured_feature/highland/blackstone_stalactite.json create mode 100755 data/nullscape/worldgen/configured_feature/highland/blackstone_top.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/chorus_plant.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/mountain.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/mountain_inv.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/mountain_inv_less.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/mountain_less.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/pillar.json create mode 100755 data/nullscape/worldgen/configured_feature/mountain/pillar_down.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/base.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/blackstone.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_1.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_2.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_3.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_4.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_5.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_crying.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_crying_2.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/cracks_start.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift_crying_obsidian.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift_gateway.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift_obsidian.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift_obsidian_spread.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/rift_sucks.json create mode 100755 data/nullscape/worldgen/configured_feature/rift/toast_feature.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/amethyst1.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/amethyst2.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/amethyst3.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/amethyst4.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/amethyst_base.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/basalt.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/blackstone.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/bone_tree.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/bone_trees1.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/coral_ceiling.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/coral_surface.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/droop.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/pillar.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/pillar_down.json create mode 100755 data/nullscape/worldgen/configured_feature/shadow/simple_coral.json create mode 100755 data/nullscape/worldgen/configured_feature/shattered/basalt.json create mode 100755 data/nullscape/worldgen/configured_feature/shattered/blackstone.json create mode 100755 data/nullscape/worldgen/configured_feature/shattered/crying.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/base.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_1.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_2.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_3.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_4.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_5.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/cracks_start.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/glass_column.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/tar_pit.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/tar_pit_glowing.json create mode 100755 data/nullscape/worldgen/configured_feature/tar/tar_pits.json create mode 100755 data/nullscape/worldgen/configured_feature/void/void_94.json create mode 100755 data/nullscape/worldgen/configured_feature/void/void_95.json create mode 100755 data/nullscape/worldgen/configured_feature/void/void_96.json create mode 100755 data/nullscape/worldgen/configured_surface_builder/blackstone.json create mode 100755 data/nullscape/worldgen/configured_surface_builder/coral.json create mode 100755 data/nullscape/worldgen/density_function/base/base_3d_noise.json create mode 100755 data/nullscape/worldgen/density_function/base/continents.json create mode 100755 data/nullscape/worldgen/density_function/base/depth.json create mode 100755 data/nullscape/worldgen/density_function/base/factor.json create mode 100644 data/nullscape/worldgen/density_function/base/mem.txt create mode 100755 data/nullscape/worldgen/density_function/base/sloped_cheese.json create mode 100755 data/nullscape/worldgen/density_function/brittleness/shatter.json create mode 100755 data/nullscape/worldgen/density_function/density/density.json create mode 100755 data/nullscape/worldgen/density_function/depth.json create mode 100755 data/nullscape/worldgen/density_function/elasticity/global.json create mode 100755 data/nullscape/worldgen/density_function/elasticity/x.json create mode 100755 data/nullscape/worldgen/density_function/elasticity/x_noise.json create mode 100755 data/nullscape/worldgen/density_function/elasticity/z.json create mode 100755 data/nullscape/worldgen/density_function/elasticity/z_noise.json create mode 100755 data/nullscape/worldgen/density_function/island/bubble.json create mode 100755 data/nullscape/worldgen/density_function/island/bubble2.json create mode 100755 data/nullscape/worldgen/density_function/island/emergency_exit.json create mode 100755 data/nullscape/worldgen/density_function/island/island.json create mode 100755 data/nullscape/worldgen/density_function/island/ring1_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring1_sync.json create mode 100755 data/nullscape/worldgen/density_function/island/ring2_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring2_sync.json create mode 100755 data/nullscape/worldgen/density_function/island/ring3_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring3_sync.json create mode 100755 data/nullscape/worldgen/density_function/island/ring4_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring4_sync.json create mode 100755 data/nullscape/worldgen/density_function/island/ring5_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring5_sync.json create mode 100755 data/nullscape/worldgen/density_function/island/ring6_offset.json create mode 100755 data/nullscape/worldgen/density_function/island/ring6_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/bubble.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/emergency_exit.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/island.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring1_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring1_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring2_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring2_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring3_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring3_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring4_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring4_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring5_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring5_sync.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring6_offset.json create mode 100755 data/nullscape/worldgen/density_function/island_backup/ring6_sync.json create mode 100755 data/nullscape/worldgen/density_function/malleability/flatness.json create mode 100755 data/nullscape/worldgen/density_function/malleability/flatness_base.json create mode 100644 data/nullscape/worldgen/density_function/malleability/meme.txt create mode 100755 data/nullscape/worldgen/density_function/porosity/bubble_large.json create mode 100755 data/nullscape/worldgen/density_function/porosity/bubble_medium.json create mode 100755 data/nullscape/worldgen/density_function/porosity/bubble_small.json create mode 100755 data/nullscape/worldgen/density_function/porosity/cheese.json create mode 100755 data/nullscape/worldgen/density_function/porosity/influence.json create mode 100755 data/nullscape/worldgen/density_function/porosity/influence_add.json create mode 100755 data/nullscape/worldgen/density_function/porosity/influence_large.json create mode 100755 data/nullscape/worldgen/density_function/porosity/influence_medium.json create mode 100755 data/nullscape/worldgen/density_function/porosity/influence_small.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/global.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/x.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/x_noise.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/y.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/y_noise.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/z.json create mode 100755 data/nullscape/worldgen/density_function/porosity/shift/z_noise.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/bubble_large.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/bubble_medium.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/bubble_small.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/cheese.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/influence.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/influence_add.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/influence_large.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/influence_medium.json create mode 100755 data/nullscape/worldgen/density_function/porosity_backup/influence_small.json create mode 100755 data/nullscape/worldgen/density_function/sharpness/points.json create mode 100755 data/nullscape/worldgen/density_function/sloped_cheese.json create mode 100755 data/nullscape/worldgen/density_function/special/hollow.json create mode 100755 data/nullscape/worldgen/density_function/void/emergency_exit.json create mode 100644 data/nullscape/worldgen/density_function/void/funny_noise_code.zip create mode 100755 data/nullscape/worldgen/density_function/void/ring1_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring1_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/ring2_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring2_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/ring3_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring3_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/ring4_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring4_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/ring5_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring5_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/ring6_offset.json create mode 100755 data/nullscape/worldgen/density_function/void/ring6_sync.json create mode 100755 data/nullscape/worldgen/density_function/void/void_gauntlet.json create mode 100755 data/nullscape/worldgen/dragon_skeleton_boneyard.json create mode 100755 data/nullscape/worldgen/noise/crystal/surface.json create mode 100755 data/nullscape/worldgen/noise/island/ring1.json create mode 100755 data/nullscape/worldgen/noise/island/ring2.json create mode 100755 data/nullscape/worldgen/noise/island/ring3.json create mode 100755 data/nullscape/worldgen/noise/island/ring4.json create mode 100755 data/nullscape/worldgen/noise/island/ring5.json create mode 100755 data/nullscape/worldgen/noise/island/ring6.json create mode 100755 data/nullscape/worldgen/noise/island/shift_x.json create mode 100755 data/nullscape/worldgen/noise/island/shift_y.json create mode 100755 data/nullscape/worldgen/noise/island/shift_z.json create mode 100755 data/nullscape/worldgen/noise/material/effect/brittleness/crack.json create mode 100755 data/nullscape/worldgen/noise/material/effect/brittleness/crack2.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/bubble_large.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/bubble_medium.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/bubble_small.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/distortion_x.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/distortion_y.json create mode 100755 data/nullscape/worldgen/noise/material/effect/porosity/distortion_z.json create mode 100755 data/nullscape/worldgen/noise/material/effect/sharpness/point.json create mode 100755 data/nullscape/worldgen/noise/material/effect/sharpness/x.json create mode 100755 data/nullscape/worldgen/noise/material/effect/sharpness/y.json create mode 100755 data/nullscape/worldgen/noise/material/effect/sharpness/z.json create mode 100755 data/nullscape/worldgen/noise/material/property/brittleness.json create mode 100755 data/nullscape/worldgen/noise/material/property/density.json create mode 100755 data/nullscape/worldgen/noise/material/property/elasticity.json create mode 100755 data/nullscape/worldgen/noise/material/property/hardness.json create mode 100755 data/nullscape/worldgen/noise/material/property/malleability.json create mode 100755 data/nullscape/worldgen/noise/material/property/porosity.json create mode 100755 data/nullscape/worldgen/noise/material/property/sharpness.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/elasticity/differential.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/elasticity/scaling_modulator.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/elasticity/x_strength.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/elasticity/y_strength.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/elasticity/z_strength.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/malleability/x_variance.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/porosity/distortion.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/porosity/influence_large.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/porosity/influence_medium.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/porosity/influence_small.json create mode 100755 data/nullscape/worldgen/noise/material/sub_property/porosity/inversion.json create mode 100644 data/nullscape/worldgen/noise/math/base_3d_old.txt create mode 100755 data/nullscape/worldgen/noise/math/base_terrain.json create mode 100755 data/nullscape/worldgen/noise/math/shift_x.json create mode 100755 data/nullscape/worldgen/noise/math/shift_y.json create mode 100755 data/nullscape/worldgen/noise/math/shift_z.json create mode 100644 data/nullscape/worldgen/noise/math/terrain_default.json create mode 100755 data/nullscape/worldgen/noise/shadowlands/brain.json create mode 100755 data/nullscape/worldgen/noise/shadowlands/bubble.json create mode 100755 data/nullscape/worldgen/noise/shadowlands/fire.json create mode 100755 data/nullscape/worldgen/noise/shadowlands/horn.json create mode 100755 data/nullscape/worldgen/noise/shadowlands/tube.json create mode 100755 data/nullscape/worldgen/noise/terrain/base_terrain.json create mode 100755 data/nullscape/worldgen/noise/terrain/continentalness.json create mode 100755 data/nullscape/worldgen/noise/terrain/temperature.json create mode 100755 data/nullscape/worldgen/noise/terrain/vegetation.json create mode 100755 data/nullscape/worldgen/noise/void/ring1.json create mode 100755 data/nullscape/worldgen/noise/void/ring2.json create mode 100755 data/nullscape/worldgen/noise/void/ring3.json create mode 100755 data/nullscape/worldgen/noise/void/ring4.json create mode 100755 data/nullscape/worldgen/noise/void/ring5.json create mode 100755 data/nullscape/worldgen/noise/void/ring6.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/amethyst.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/blackstone.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/crying.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/half_crying.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/inverse/amethyst.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/inverse/blackstone.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/inverse/crying.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/inverse/half_crying.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/inverse/obsidian.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/light_down.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/light_up.json create mode 100755 data/nullscape/worldgen/obsolete_feature/crystal/obsidian.json create mode 100755 data/nullscape/worldgen/placed_feature/asteroid_carver.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/bone_tree.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/fire.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/pillar_1.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/pillar_2.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/pillar_3.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/pillar_4.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/pillars.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_dx.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_more.json create mode 100755 data/nullscape/worldgen/placed_feature/boneyard/soul_sand.json create mode 100755 data/nullscape/worldgen/placed_feature/chorus_light.json create mode 100755 data/nullscape/worldgen/placed_feature/chorus_plant.json create mode 100755 data/nullscape/worldgen/placed_feature/chorus_quadratic.json create mode 100755 data/nullscape/worldgen/placed_feature/chorus_variation.json create mode 100755 data/nullscape/worldgen/placed_feature/crystal/crystal.json create mode 100755 data/nullscape/worldgen/placed_feature/crystal/crystal2.json create mode 100755 data/nullscape/worldgen/placed_feature/delta/delta2.json create mode 100755 data/nullscape/worldgen/placed_feature/destroy_everything.json create mode 100755 data/nullscape/worldgen/placed_feature/float/asteroid.json create mode 100755 data/nullscape/worldgen/placed_feature/float/end_island_decorated.json create mode 100755 data/nullscape/worldgen/placed_feature/float/end_island_decorated_void.json create mode 100755 data/nullscape/worldgen/placed_feature/float/inv.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/patch_start.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/roots.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/roots_first.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/tree.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/tree2.json create mode 100755 data/nullscape/worldgen/placed_feature/glowstone/tree_d1.json create mode 100755 data/nullscape/worldgen/placed_feature/highland/glowstone_patch.json create mode 100755 data/nullscape/worldgen/placed_feature/highland/glowstone_tree.json create mode 100755 data/nullscape/worldgen/placed_feature/highland/patch_bottom.json create mode 100755 data/nullscape/worldgen/placed_feature/infested/sculk.json create mode 100755 data/nullscape/worldgen/placed_feature/infested/tendril.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/chorus_plant.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/mountain.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/mountain_inv.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/mountain_inv_less.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/mountain_less.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/pillar.json create mode 100755 data/nullscape/worldgen/placed_feature/mountain/pillar_down.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/base.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/blackstone.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_1.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_2.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_3.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_4.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_5.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_crying.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_crying_2.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/cracks_start.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift_crying_obsidian.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift_gateway.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift_obsidian.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift_obsidian_spread.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/rift_sucks.json create mode 100755 data/nullscape/worldgen/placed_feature/rift/toast_feature.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/amethyst1.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/amethyst2.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/amethyst3.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/amethyst4.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/amethyst_base.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/basalt.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/blackstone.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/bone_tree.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/bone_trees1.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/coral_ceiling.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/coral_surface.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/droop.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/pillar.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/pillar_down.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/pillars_coral.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/shadow_cut.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/simple_coral.json create mode 100755 data/nullscape/worldgen/placed_feature/shadow/vegetation.json create mode 100755 data/nullscape/worldgen/placed_feature/shattered/basalt.json create mode 100755 data/nullscape/worldgen/placed_feature/shattered/blackstone.json create mode 100755 data/nullscape/worldgen/placed_feature/shattered/crying.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/base.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_1.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_2.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_3.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_4.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_5.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/cracks_start.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/glass_column.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/tar_pit.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/tar_pit_glowing.json create mode 100755 data/nullscape/worldgen/placed_feature/tar/tar_pits.json create mode 100755 data/nullscape/worldgen/placed_feature/void/void_94.json create mode 100755 data/nullscape/worldgen/placed_feature/void/void_95.json create mode 100755 data/nullscape/worldgen/placed_feature/void/void_96.json create mode 100755 data/nullscape/worldgen/processor_list/disintegrate_20.json create mode 100755 data/nullscape/worldgen/processor_list/disintegrate_50.json create mode 100755 data/nullscape/worldgen/processor_list/disintegrate_80.json create mode 100755 data/nullscape/worldgen/processor_list/void_suppression.json create mode 100755 data/nullscape/worldgen/structure/dragon_skeleton.json create mode 100755 data/nullscape/worldgen/structure_set/dragon_skeleton.json create mode 100755 data/nullscape/worldgen/template_pool/dragon_skeleton.json create mode 100755 data/nullscape/worldgen/template_pool/dragon_skeleton_boneyard.json create mode 100644 license.txt create mode 100755 pack.mcmeta create mode 100755 pack.png diff --git a/data/minecraft/dimension/the_end.json b/data/minecraft/dimension/the_end.json new file mode 100755 index 0000000..6adaabf --- /dev/null +++ b/data/minecraft/dimension/the_end.json @@ -0,0 +1,219 @@ +{ + "type": "minecraft:the_end", + "generator": { + "type": "minecraft:noise", + "settings": "minecraft:end", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "minecraft:small_end_islands", + "parameters": { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 0 + ], + "erosion": [ + -1, + -0.3 + ], + "weirdness": [ + -1, + 1 + ], + "depth": -2, + "offset": 1 + } + }, + { + "biome": "nullscape:shadowlands", + "parameters": { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + -0.2 + ], + "continentalness": [ + -1, + 0 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -1.4, + 1 + ], + "offset": 0.49 + } + }, + { + "biome": "nullscape:void_barrens", + "parameters": { + "temperature": [ + 0, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + 0.3, + 1 + ], + "erosion": [ + -1, + -0.15 + ], + "weirdness": [ + -0.475, + 0.475 + ], + "depth": [ + -1.4, + 1 + ], + "offset": 0.49 + } + }, + { + "biome": "nullscape:crystal_peaks", + "parameters": { + "temperature": [ + 0, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + 0.3, + 1 + ], + "erosion": [ + -1, + -0.15 + ], + "weirdness": [ + 0.475, + 1 + ], + "depth": [ + -1.4, + 1 + ], + "offset": 0.485 + } + }, + { + "biome": "nullscape:crystal_peaks", + "parameters": { + "temperature": [ + 0, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + 0.3, + 1 + ], + "erosion": [ + -1, + -0.15 + ], + "weirdness": [ + -1, + -0.475 + ], + "depth": [ + -1.4, + 1 + ], + "offset": 0.485 + } + }, + { + "biome": "minecraft:end_highlands", + "parameters": { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -1.4, + 1 + ], + "offset": 0.5 + } + }, + { + "biome": "minecraft:the_end", + "parameters": { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + 1.9, + 2.0 + ], + "offset": 0.75 + } + } + ] + } + } +} diff --git a/data/minecraft/dimension_type/the_end.json b/data/minecraft/dimension_type/the_end.json new file mode 100755 index 0000000..6d943ec --- /dev/null +++ b/data/minecraft/dimension_type/the_end.json @@ -0,0 +1,26 @@ +{ + "logical_height": 384, + "infiniburn": "#minecraft:infiniburn_end", + "effects": "minecraft:the_end", + "ambient_light": 0, + "respawn_anchor_works": false, + "has_raids": true, + "min_y": 0, + "height": 384, + "natural": false, + "coordinate_scale": 1, + "piglin_safe": false, + "bed_works": false, + "fixed_time": 18000, + "has_skylight": false, + "has_ceiling": false, + "ultrawarm": false, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 0, + "max_inclusive": 7 + } + } +} diff --git a/data/minecraft/loot_tables/blocks/amethyst_block.json b/data/minecraft/loot_tables/blocks/amethyst_block.json new file mode 100755 index 0000000..fd50000 --- /dev/null +++ b/data/minecraft/loot_tables/blocks/amethyst_block.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:amethyst_block", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.125 + }, + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } + }, + { + "condition": "minecraft:random_chance", + "chance": 0.1 + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_block", + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/data/minecraft/tags/blocks/base_stone_overworld.json b/data/minecraft/tags/blocks/base_stone_overworld.json new file mode 100755 index 0000000..8271661 --- /dev/null +++ b/data/minecraft/tags/blocks/base_stone_overworld.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "end_stone" + ] +} diff --git a/data/minecraft/tags/blocks/glowstone.json b/data/minecraft/tags/blocks/glowstone.json new file mode 100755 index 0000000..bd3f9af --- /dev/null +++ b/data/minecraft/tags/blocks/glowstone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "glowstone" + ] +} diff --git a/data/minecraft/tags/blocks/infiniburn_end.json b/data/minecraft/tags/blocks/infiniburn_end.json new file mode 100755 index 0000000..a0ff1fc --- /dev/null +++ b/data/minecraft/tags/blocks/infiniburn_end.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "obsidian", + "crying_obsidian" + ] +} diff --git a/data/minecraft/tags/blocks/sculk_replaceable_world_gen.json b/data/minecraft/tags/blocks/sculk_replaceable_world_gen.json new file mode 100755 index 0000000..6881358 --- /dev/null +++ b/data/minecraft/tags/blocks/sculk_replaceable_world_gen.json @@ -0,0 +1,5 @@ +{ + "values": [ + "bone_block" + ] +} \ No newline at end of file diff --git a/data/minecraft/tags/worldgen/biome/has_structure/end_city.json b/data/minecraft/tags/worldgen/biome/has_structure/end_city.json new file mode 100755 index 0000000..476e8d7 --- /dev/null +++ b/data/minecraft/tags/worldgen/biome/has_structure/end_city.json @@ -0,0 +1,8 @@ +{ + "replace":false, + "values": [ + "nullscape:void_barrens", + "nullscape:shadowlands", + "nullscape:crystal_peaks" + ] +} \ No newline at end of file diff --git a/data/minecraft/worldgen/biome/end_barrens.json b/data/minecraft/worldgen/biome/end_barrens.json new file mode 100755 index 0000000..efb098c --- /dev/null +++ b/data/minecraft/worldgen/biome/end_barrens.json @@ -0,0 +1,50 @@ +{ + "effects": { + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "sky_color": 0, + "fog_color": 10518688, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "carvers": {}, + "features": [ + [], + [], + [], + [], + [ + "minecraft:end_gateway_return" + ], + [], + [], + [], + [], + [] + ], + "spawners": { + "monster": [ + { + "type": "minecraft:enderman", + "weight": 10, + "minCount": 4, + "maxCount": 4 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "precipitation": "none", + "temperature": 0.5, + "downfall": 0.5 +} diff --git a/data/minecraft/worldgen/biome/end_highlands.json b/data/minecraft/worldgen/biome/end_highlands.json new file mode 100755 index 0000000..bf5ce6a --- /dev/null +++ b/data/minecraft/worldgen/biome/end_highlands.json @@ -0,0 +1,59 @@ +{ + "effects": { + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "sky_color": 0, + "fog_color": 10518688, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "carvers": {}, + "features": [ + [ + ], + [], + [], + [], + [ + "minecraft:end_gateway_return" + ], + [], + [], + [], + [], + [ + "nullscape:highland/glowstone_patch", + "nullscape:highland/patch_bottom", + "nullscape:glowstone/roots", + "nullscape:glowstone/tree", + "nullscape:glowstone/tree2", + "nullscape:chorus_quadratic", + "nullscape:chorus_variation" + ] + ], + "spawners": { + "monster": [ + { + "type": "minecraft:enderman", + "weight": 10, + "minCount": 4, + "maxCount": 4 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "precipitation": "none", + "temperature": 0.5, + "downfall": 0.5 +} diff --git a/data/minecraft/worldgen/biome/end_midlands.json b/data/minecraft/worldgen/biome/end_midlands.json new file mode 100755 index 0000000..efb098c --- /dev/null +++ b/data/minecraft/worldgen/biome/end_midlands.json @@ -0,0 +1,50 @@ +{ + "effects": { + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "sky_color": 0, + "fog_color": 10518688, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "carvers": {}, + "features": [ + [], + [], + [], + [], + [ + "minecraft:end_gateway_return" + ], + [], + [], + [], + [], + [] + ], + "spawners": { + "monster": [ + { + "type": "minecraft:enderman", + "weight": 10, + "minCount": 4, + "maxCount": 4 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "precipitation": "none", + "temperature": 0.5, + "downfall": 0.5 +} diff --git a/data/minecraft/worldgen/biome/small_end_islands.json b/data/minecraft/worldgen/biome/small_end_islands.json new file mode 100755 index 0000000..2db94a9 --- /dev/null +++ b/data/minecraft/worldgen/biome/small_end_islands.json @@ -0,0 +1,44 @@ +{ + "effects": { + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "sky_color": 0, + "fog_color": 10518688, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "carvers": {}, + "features": [ + [ + "minecraft:end_island_decorated" + ], + [ + "nullscape:float/asteroid" + ] + ], + "spawners": { + "monster": [ + { + "type": "minecraft:enderman", + "weight": 10, + "minCount": 4, + "maxCount": 4 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "precipitation": "none", + "temperature": 0.5, + "downfall": 0.5 +} diff --git a/data/minecraft/worldgen/biome/the_end.json b/data/minecraft/worldgen/biome/the_end.json new file mode 100755 index 0000000..224f9c7 --- /dev/null +++ b/data/minecraft/worldgen/biome/the_end.json @@ -0,0 +1,45 @@ +{ + "effects": { + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "sky_color": 0, + "fog_color": 10518688, + "water_color": 4159204, + "water_fog_color": 329011 + }, + "carvers": {}, + "features": [ + [], + [], + [], + [], + [ + "minecraft:end_spike" + ] + ], + "spawners": { + "monster": [ + { + "type": "minecraft:enderman", + "weight": 10, + "minCount": 4, + "maxCount": 4 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "precipitation": "none", + "temperature": 0.5, + "downfall": 0.5 +} diff --git a/data/minecraft/worldgen/noise_settings/end.json b/data/minecraft/worldgen/noise_settings/end.json new file mode 100755 index 0000000..ed7b1e3 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/end.json @@ -0,0 +1,456 @@ +{ + "sea_level": -96, + "disable_mob_generation": false, + "aquifers_enabled": false, + "ore_veins_enabled": false, + "legacy_random_source": false, + "default_block": { + "Name": "minecraft:end_stone" + }, + "default_fluid": { + "Name": "minecraft:air" + }, + "noise": { + "min_y": 0, + "height": 288, + "size_horizontal": 1, + "size_vertical": 1 + }, + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "nullscape:shadowlands" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 7, + "surface_type": "ceiling", + "add_surface_depth": true, + "secondary_depth_range": 6 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/fire", + "min_threshold": 0.2, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_fire_coral_block" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/bubble", + "min_threshold": 0.15, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_bubble_coral_block" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/horn", + "min_threshold": 0.1, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_horn_coral_block" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_tube_coral_block" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 7, + "surface_type": "floor", + "add_surface_depth": true, + "secondary_depth_range": 6 + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/fire", + "min_threshold": 0.2, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_fire_coral_block" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/bubble", + "min_threshold": 0.15, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_bubble_coral_block" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:shadowlands/horn", + "min_threshold": 0.1, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_horn_coral_block" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:dead_tube_coral_block" + } + } + ] + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "nullscape:void_barrens" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:crystal/surface", + "min_threshold": -0.25, + "max_threshold": 0.25 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:blackstone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:crystal/surface", + "min_threshold": -0.575, + "max_threshold": 0.575 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:smooth_basalt" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:noise_threshold", + "noise": "nullscape:crystal/surface", + "min_threshold": -1e+308, + "max_threshold": 1e+308 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + } + } + } + ] + } + } + ] + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "nullscape:crystal_peaks" + ] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:blackstone" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:end_stone" + } + } + ] + }, + "noise_router": { + "final_density": + + { + "type":"max", + "argument1":{ + "argument1": { + "argument": { + "argument1": 0.64, + "argument2": + { + "argument": { + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 4, + "to_y": 32, + "from_value": 0, + "to_value": 1 + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 256, + "to_y": 300, + "from_value": 1, + "to_value": 0 + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "max_exclusive": 1.5625, + "when_in_range": "nullscape:sloped_cheese", + "when_out_of_range": "nullscape:sloped_cheese", + "input": "nullscape:sloped_cheese", + "min_inclusive": -1000000, + "type": "minecraft:range_choice" + }, + "argument2": 10 + } + }, + "argument2": -10 + }, + "argument2": 0.234375 + } + }, + "argument2": -0.234375 + }, + "type": "minecraft:blend_density" + }, + "type": "minecraft:interpolated" + }, + + "type": "minecraft:mul" + }, + "type": "minecraft:squeeze" + }, + "argument2": + { + "type":"min", + "argument1":"nullscape:porosity/cheese", + "argument2": + {"type":"min", + "argument1": + "nullscape:brittleness/shatter", + "argument2":{"type":"interpolated","argument":"nullscape:void/void_gauntlet"}} + }, + "type": "minecraft:min" + }, + "argument2":{"type":"interpolated","argument":"nullscape:island/island"} + }, + "vein_toggle": 0, + "vein_ridged": 0, + "vein_gap": 0, + "erosion": "minecraft:overworld/erosion", + "depth": + + { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:range_choice", + "input": { + "type": "minecraft:y_clamped_gradient", + "from_y": 0, + "to_y": 384, + "from_value": 0, + "to_value": 384 + }, + "min_inclusive": 0, + "max_exclusive": 4, + "when_in_range": 40, + "when_out_of_range": "nullscape:depth" + }, + "argument2": "nullscape:void/emergency_exit" +} + + + + + , + "ridges": "minecraft:overworld/ridges", + "initial_density_without_jaggedness": { + "argument1": 4, + "argument2": { + "argument": { + "argument1": "nullscape:base/depth", + "argument2": { + "argument": "nullscape:base/factor", + "type": "minecraft:cache_2d" + }, + "type": "minecraft:mul" + }, + "type": "minecraft:quarter_negative" + }, + "type": "minecraft:mul" + }, + "lava": 0, + "temperature": { + "xz_scale": 0.25, + "y_scale": 0, + "noise": "nullscape:terrain/temperature", + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z", + "type": "minecraft:shifted_noise" + }, + "vegetation": { + "xz_scale": 0.25, + "y_scale": 0, + "noise": "nullscape:terrain/vegetation", + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z", + "type": "minecraft:shifted_noise" + }, + "continents": "nullscape:base/continents", + "barrier": 0, + "fluid_level_floodedness": 0, + "fluid_level_spread": 0 + }, + "spawn_target": [ + { + "erosion": [ + -1, + 1 + ], + "depth": 0, + "weirdness": [ + -1, + -0.16 + ], + "offset": 0, + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ] + }, + { + "erosion": [ + -1, + 1 + ], + "depth": 0, + "weirdness": [ + 0.16, + 1 + ], + "offset": 0, + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ] + } + ] +} diff --git a/data/minecraft/worldgen/noise_settings/end_island.json b/data/minecraft/worldgen/noise_settings/end_island.json new file mode 100755 index 0000000..ae2a907 --- /dev/null +++ b/data/minecraft/worldgen/noise_settings/end_island.json @@ -0,0 +1,169 @@ +{ + "sea_level": 0, + "disable_mob_generation": true, + "aquifers_enabled": false, + "ore_veins_enabled": false, + "legacy_random_source": true, + "default_block": { + "Name": "minecraft:end_stone" + }, + "default_fluid": { + "Name": "minecraft:air" + }, + "noise": { + "min_y": 0, + "height": 128, + "size_horizontal": 2, + "size_vertical": 1 + }, + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:biome", + "biome_is": [ + "minecraft:the_end" + ] + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:air" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:end_stone" + } + } + ] + }, + "noise_router": { + "final_density": { + "argument": { + "argument1": 0.64, + "argument2": { + "argument": { + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 4, + "to_y": 32, + "from_value": 0, + "to_value": 1 + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 56, + "to_y": 312, + "from_value": 1, + "to_value": 0 + }, + "argument2": { + "type": "minecraft:add", + "argument1": "minecraft:end/sloped_cheese", + "argument2": 23.4375 + } + }, + "argument2": -23.4375 + }, + "argument2": 0.234375 + } + }, + "argument2": -0.234375 + }, + "type": "minecraft:blend_density" + }, + "type": "minecraft:interpolated" + }, + "type": "minecraft:mul" + }, + "type": "minecraft:squeeze" + }, + "vein_toggle": 0, + "vein_ridged": 0, + "vein_gap": 0, + "erosion": 0, + "depth": 0, + "ridges": 0, + "initial_density_without_jaggedness": { + "argument": { + "type": "minecraft:end_islands" + }, + "type": "minecraft:cache_2d" + }, + "lava": 0, + "temperature": 0, + "vegetation": 0, + "continents": 0, + "barrier": 0, + "fluid_level_floodedness": 0, + "fluid_level_spread": 0 + }, + "spawn_target": [ + { + "erosion": [ + -1, + 1 + ], + "depth": 0, + "weirdness": [ + -1, + -0.16 + ], + "offset": 0, + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ] + }, + { + "erosion": [ + -1, + 1 + ], + "depth": 0, + "weirdness": [ + 0.16, + 1 + ], + "offset": 0, + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -0.11, + 1 + ] + } + ] +} diff --git a/data/minecraft/worldgen/structure_set/end_cities.json b/data/minecraft/worldgen/structure_set/end_cities.json new file mode 100755 index 0000000..3cebb64 --- /dev/null +++ b/data/minecraft/worldgen/structure_set/end_cities.json @@ -0,0 +1,17 @@ +{ + "structures": [ + { + "structure": "minecraft:end_city", + "weight": 1 + } + ], + "placement": { + "type": "minecraft:random_spread", + "salt": 10387313, + "frequency_reduction_method": "default", + "frequency": 0.35, + "spread_type": "triangular", + "spacing": 20, + "separation": 11 + } +} diff --git a/data/nullscape/advancements/technical/enter_gateway.json b/data/nullscape/advancements/technical/enter_gateway.json new file mode 100755 index 0000000..35a48cd --- /dev/null +++ b/data/nullscape/advancements/technical/enter_gateway.json @@ -0,0 +1,24 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:enter_block", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "dimension": "minecraft:the_end" + } + } + } + ], + "block": "minecraft:end_gateway" + } + } + }, + "rewards": { + "function": "nullscape:technical/gateway/rift" + } +} diff --git a/data/nullscape/end_island.json b/data/nullscape/end_island.json new file mode 100755 index 0000000..37bf7da --- /dev/null +++ b/data/nullscape/end_island.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:the_end", + "generator": { + "biome_source": { + "seed": 0, + "type": "minecraft:the_end" + }, + "settings": "minecraft:end_island", + "type": "minecraft:noise" + } +} diff --git a/data/nullscape/functionz/clocks/main.mcfunction b/data/nullscape/functionz/clocks/main.mcfunction new file mode 100755 index 0000000..9a6f364 --- /dev/null +++ b/data/nullscape/functionz/clocks/main.mcfunction @@ -0,0 +1,8 @@ +function nullscape:technical/main + +# includes players +execute as @e[type=!#nullscape:not_teleportable] run function nullscape:entity/main + +execute as @a at @s run function nullscape:player/main + +schedule function nullscape:clocks/main 1t replace diff --git a/data/nullscape/functionz/clocks/wait_for_player.mcfunction b/data/nullscape/functionz/clocks/wait_for_player.mcfunction new file mode 100755 index 0000000..788fb47 --- /dev/null +++ b/data/nullscape/functionz/clocks/wait_for_player.mcfunction @@ -0,0 +1,3 @@ +schedule function nullscape:clocks/wait_for_player 1s replace + +execute if entity @r run function nullscape:technical/misc/check_dimension diff --git a/data/nullscape/functionz/entity/main.mcfunction b/data/nullscape/functionz/entity/main.mcfunction new file mode 100755 index 0000000..11e6677 --- /dev/null +++ b/data/nullscape/functionz/entity/main.mcfunction @@ -0,0 +1,17 @@ +# @s: entity thats !#nullscape:not_teleportable +#> ticking entity + +scoreboard players add @s ns.dimension_buffer 0 +scoreboard players operation @s[scores={ns.dimension_buffer=0}] ns.old_dimension = @s ns.dimension + +scoreboard players set @s ns.dimension 1 +scoreboard players set @s[predicate=nullscape:dim/null_island] ns.dimension 2 +scoreboard players set @s[predicate=nullscape:dim/the_end] ns.dimension 3 + +# if unset, set it before bad stuff happens +execute unless score @s ns.old_dimension matches 1.. run scoreboard players operation @s ns.old_dimension = @s ns.dimension + +#> If entity changed dimensions, reroute entity +execute unless score @s ns.old_dimension = @s ns.dimension in minecraft:the_end positioned 100 49 0 run function nullscape:technical/dim/route + +scoreboard players remove @s[scores={ns.dimension_buffer=1..}] ns.dimension_buffer 1 diff --git a/data/nullscape/functionz/load.mcfunction b/data/nullscape/functionz/load.mcfunction new file mode 100755 index 0000000..dcd3247 --- /dev/null +++ b/data/nullscape/functionz/load.mcfunction @@ -0,0 +1,27 @@ +# #minecraft:load via #load:load + +scoreboard players set nullscape load.status 1 + +scoreboard objectives add ns.dummy dummy +scoreboard objectives add ns.const dummy +scoreboard objectives add ns.tar_time dummy +scoreboard objectives add ns.use_pearl minecraft.used:minecraft.ender_pearl + +#> dimension num code +# 1: normal dimension (minecraft:overworld, minecraft:the_nether) +# 2: null island (nullscape:end_island) +# 3: nullscape (minecraft:the_end) +scoreboard objectives add ns.dimension dummy +scoreboard objectives add ns.old_dimension dummy +scoreboard objectives add ns.dimension_buffer dummy + +# we have to for proper entity teleporation >:( +execute in minecraft:the_end run forceload remove 100 0 +execute in minecraft:the_end run forceload add 100 0 + +execute in nullscape:end_island run forceload remove 100 0 +execute in nullscape:end_island run forceload add 100 0 + +schedule clear nullscape:clocks/main +schedule function nullscape:clocks/main 1t replace +schedule function nullscape:clocks/wait_for_player 2t replace diff --git a/data/nullscape/functionz/player/main.mcfunction b/data/nullscape/functionz/player/main.mcfunction new file mode 100755 index 0000000..1272daf --- /dev/null +++ b/data/nullscape/functionz/player/main.mcfunction @@ -0,0 +1,31 @@ +# from clocks/main +# @s: player + +#> tar bog disabled +# scoreboard players add @s[predicate=nullscape:tar_bog] ns.tar_time 1 + +# execute if entity @s[scores={ns.tar_time=1..}] run function nullscape:player/tar_bog + +# stupid ender pearls +execute positioned 96 75 0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -0 75 96 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -95 75 -0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned -29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 0 75 -95 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5,scores={ns.use_pearl=1..}] run function nullscape:technical/dim/to_nullscape + +scoreboard players set @s ns.use_pearl 0 diff --git a/data/nullscape/functionz/player/tar_bog.mcfunction b/data/nullscape/functionz/player/tar_bog.mcfunction new file mode 100755 index 0000000..b4574a0 --- /dev/null +++ b/data/nullscape/functionz/player/tar_bog.mcfunction @@ -0,0 +1,35 @@ +# from ./main +# @s: player (in tar) + +scoreboard players remove @s[predicate=!nullscape:tar_bog] ns.tar_time 2 + +effect give @s[scores={ns.tar_time=8..39}] slowness 1 0 +effect give @s[scores={ns.tar_time=40..59}] slowness 1 1 +effect give @s[scores={ns.tar_time=60..79}] slowness 1 2 +effect give @s[scores={ns.tar_time=80..99}] slowness 1 3 +effect give @s[scores={ns.tar_time=100..}] slowness 1 4 +effect give @s[scores={ns.tar_time=80..}] blindness 3 0 +effect give @s[scores={ns.tar_time=180..220}] wither 1 0 +effect give @s[scores={ns.tar_time=220..350}] wither 1 1 +effect give @s[scores={ns.tar_time=350..}] wither 1 2 + +execute if entity @s[scores={ns.tar_time=40..},predicate=nullscape:random/5] run playsound minecraft:block.lava.pop player @a[distance=..5] ~ ~ ~ 1 1.0 1 +execute if entity @s[scores={ns.tar_time=40..},predicate=nullscape:random/2] run playsound minecraft:block.slime_block.place player @a[distance=..5] ~ ~ ~ 1 0.9 1 +execute if entity @s[scores={ns.tar_time=50..},predicate=nullscape:random/5] run playsound minecraft:block.lava.pop player @a[distance=..5] ~ ~ ~ 1 0.8 1 +execute if entity @s[scores={ns.tar_time=60..},predicate=nullscape:random/2] run playsound minecraft:block.slime_block.place player @a[distance=..5] ~ ~ ~ 1 0.7 1 +execute if entity @s[scores={ns.tar_time=70..},predicate=nullscape:random/5] run playsound minecraft:block.lava.pop player @a[distance=..5] ~ ~ ~ 1 0.6 1 +execute if entity @s[scores={ns.tar_time=80..},predicate=nullscape:random/2] run playsound minecraft:block.slime_block.place player @a[distance=..5] ~ ~ ~ 1 0.5 1 +execute if entity @s[scores={ns.tar_time=90..},predicate=nullscape:random/5] run playsound minecraft:block.lava.pop player @a[distance=..5] ~ ~ ~ 1 0.4 1 +execute if entity @s[scores={ns.tar_time=100..},predicate=nullscape:random/2] run playsound minecraft:block.slime_block.place player @a[distance=..5] ~ ~ ~ 1 0.3 1 +execute if entity @s[scores={ns.tar_time=110..},predicate=nullscape:random/5] run playsound minecraft:block.lava.pop player @a[distance=..5] ~ ~ ~ 1 0.2 1 + +execute if entity @s[scores={ns.tar_time=40..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.5 0.5 0 2 force +execute if entity @s[scores={ns.tar_time=50..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.6 0.6 0.6 0 2 force +execute if entity @s[scores={ns.tar_time=60..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.7 0.7 0.7 0 2 force +execute if entity @s[scores={ns.tar_time=70..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.8 0.8 0.8 0 2 force +execute if entity @s[scores={ns.tar_time=80..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.8 0.5 0.8 0 2 force +execute if entity @s[scores={ns.tar_time=90..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.8 0.5 0 2 force +execute if entity @s[scores={ns.tar_time=100..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.5 0.5 0 2 force +execute if entity @s[scores={ns.tar_time=110..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.5 0.5 0 2 force +execute if entity @s[scores={ns.tar_time=120..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.5 0.5 0 2 force +execute if entity @s[scores={ns.tar_time=130..},predicate=nullscape:random/10] run particle minecraft:falling_dust black_concrete ~ ~1 ~ 0.5 0.5 0.5 0 2 force diff --git a/data/nullscape/functionz/technical/dim/route.mcfunction b/data/nullscape/functionz/technical/dim/route.mcfunction new file mode 100755 index 0000000..85537ab --- /dev/null +++ b/data/nullscape/functionz/technical/dim/route.mcfunction @@ -0,0 +1,12 @@ +# @s: entity just teleported (pos in minecraft:the_end around 100 50 0) +#> route entity to correct location + +scoreboard players set @s[scores={ns.dimension_buffer=0}] ns.dimension_buffer 10 + +# old dim == overworld/the_nether, etc +execute if entity @s[scores={ns.old_dimension=1}, distance=..6] run function nullscape:technical/dim/to_null_island + +# old dim == null_island (fake end island) +execute if entity @s[scores={ns.old_dimension=2}, distance=..6] run function nullscape:technical/dim/to_overworld + +execute if entity @s[scores={ns.dimension_buffer=0}] run tellraw @a[tag=ns.admin] ["", {"nbt": "Pos", "entity": "@s", "color": "gold"}, " ", {"nbt": "Dimension", "entity": "@s", "color": "blue"}, " ", {"score": {"name": "@s", "objective": "ns.old_dimension"}, "color": "red"}, " -> ", {"score": {"name": "@s", "objective": "ns.dimension"}, "color": "green"}] diff --git a/data/nullscape/functionz/technical/dim/to_null_island.mcfunction b/data/nullscape/functionz/technical/dim/to_null_island.mcfunction new file mode 100755 index 0000000..f628721 --- /dev/null +++ b/data/nullscape/functionz/technical/dim/to_null_island.mcfunction @@ -0,0 +1,21 @@ +# @s: entity (location is worldspawn) +#> send entity to the fake end island (nullscape:end_island) + +#say going to null island + +# players go to different coords than entities +kill @e[type=ender_pearl,distance=..10] + +execute in nullscape:end_island run tp @s[type=player] 100 49 0 +execute in nullscape:end_island run tp @s[type=!player] 100.5 50 0.5 + +# obby platform +execute in nullscape:end_island positioned 100 49 0 run fill ~-2 ~-1 ~-2 ~2 ~-1 ~2 minecraft:obsidian replace + +# air box +execute in nullscape:end_island positioned 100 49 0 run fill ~-2 ~ ~-2 ~2 ~3 ~2 minecraft:air replace minecraft:end_stone + +# prevent double player tp +tag @s[type=player] add ns.tpd + +scoreboard players set @s ns.dimension_buffer 0 diff --git a/data/nullscape/functionz/technical/dim/to_nullscape.mcfunction b/data/nullscape/functionz/technical/dim/to_nullscape.mcfunction new file mode 100755 index 0000000..4c58ccc --- /dev/null +++ b/data/nullscape/functionz/technical/dim/to_nullscape.mcfunction @@ -0,0 +1,15 @@ +# @s: entity (location is worldspawn) +#> send entity to the nullscape (the_end) + +tag @s add ns.self +kill @e[type=ender_pearl, distance=..3] + +execute store result score $x ns.dummy run data get entity @s Pos[0] 0.1 +execute store result score $z ns.dummy run data get entity @s Pos[2] 0.1 + +execute unless entity @e[type=marker,tag=ns.teleporter,distance=..20] run summon marker ~ ~ ~ {Tags:['ns.teleporter']} +execute as @e[type=marker,tag=ns.teleporter,distance=..1,limit=1] run function nullscape:technical/gateway/marker_teleport + +tag @s remove ns.self + +scoreboard players set @s ns.dimension_buffer 0 diff --git a/data/nullscape/functionz/technical/dim/to_overworld.mcfunction b/data/nullscape/functionz/technical/dim/to_overworld.mcfunction new file mode 100755 index 0000000..d559572 --- /dev/null +++ b/data/nullscape/functionz/technical/dim/to_overworld.mcfunction @@ -0,0 +1,13 @@ +# @s: entity +#> send entity to the overworld + +#say going to overworld + +# this is for players lol +execute in minecraft:the_end positioned 100 50 0 run fill ~-2 ~ ~-2 ~2 ~ ~2 minecraft:end_portal replace minecraft:air + +# delete later, must be loaded + +schedule function nullscape:technical/misc/delete_end_portal 2t replace + +scoreboard players set @s ns.dimension_buffer 0 diff --git a/data/nullscape/functionz/technical/gateway/existing_gateway.mcfunction b/data/nullscape/functionz/technical/gateway/existing_gateway.mcfunction new file mode 100755 index 0000000..95fc951 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/existing_gateway.mcfunction @@ -0,0 +1,12 @@ +# @s: marker (ns.nullscape_gateway) +#> reroute entity to place + +# regen structure +setblock ~ 50 ~ structure_block{metadata: "", mirror: "NONE", ignoreEntities: 1b, powered: 0b, seed: 0L, author: "Starmute", rotation: "NONE", posX: -6, mode: "LOAD", posY: -11, sizeX: 13, posZ: -6, integrity: 1.0f, showair: 0b, x: 164, name: "nullscape:gateway_platform2", y: 115, z: 61, id: "minecraft:structure_block", sizeY: 20, sizeZ: 13, showboundingbox: 0b} +setblock ~ 49 ~ minecraft:redstone_block +setblock ~ 50 ~ minecraft:air + +tp @e[tag=ns.self,limit=1] @s + +# flag for later +scoreboard players set $found_gateway ns.dummy 1 diff --git a/data/nullscape/functionz/technical/gateway/find_safe_block.mcfunction b/data/nullscape/functionz/technical/gateway/find_safe_block.mcfunction new file mode 100755 index 0000000..2776c87 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/find_safe_block.mcfunction @@ -0,0 +1,9 @@ +# @s: marker +#> positioned recursively +#> marker does not tp down, no need + +##tellraw @a ["y: ", {"score":{"name":"$y","objective":"ns.dummy"}}] +execute if block ~ ~ ~ #nullscape:solid run tp @s ~ ~ ~ + +scoreboard players remove $y ns.dummy 1 +execute unless block ~ ~ ~ #nullscape:solid if score $y ns.dummy matches -60.. positioned ~ ~-1 ~ run function nullscape:technical/gateway/find_safe_block diff --git a/data/nullscape/functionz/technical/gateway/marker_teleport.mcfunction b/data/nullscape/functionz/technical/gateway/marker_teleport.mcfunction new file mode 100755 index 0000000..e503a71 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/marker_teleport.mcfunction @@ -0,0 +1,20 @@ +# @s: marker +#> algo for dynamically tping + placing structure + +# store coords into marker +execute store result entity @s Pos[0] double 150 run scoreboard players get $x ns.dummy +data modify entity @s Pos[1] set value 50.0d +execute store result entity @s Pos[2] double 150 run scoreboard players get $z ns.dummy + +# temp forceload so we can edit blocks +execute positioned as @s in minecraft:the_end run forceload add ~ ~ + +# make new gateway go to existing one.. +scoreboard players set $found_gateway ns.dummy 0 +execute positioned as @s in minecraft:the_end as @e[type=marker,tag=ns.nullscape_gateway,distance=..20] at @s run function nullscape:technical/gateway/existing_gateway +execute if score $found_gateway ns.dummy matches 0 positioned as @s in minecraft:the_end run function nullscape:technical/gateway/new_gateway + +# unload + cleanup +execute positioned as @s in minecraft:the_end run forceload remove ~ ~ + +kill @s diff --git a/data/nullscape/functionz/technical/gateway/new_gateway.mcfunction b/data/nullscape/functionz/technical/gateway/new_gateway.mcfunction new file mode 100755 index 0000000..8196a85 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/new_gateway.mcfunction @@ -0,0 +1,13 @@ +# @s: marker +#> structure + +execute positioned ~ 52 ~ align xyz unless entity @e[type=marker,distance=..20,tag=ns.nullscape_gateway] run summon marker ~0.5 52 ~0.5 {Tags:['ns.nullscape_gateway'],CustomName:'"Nullscape Gateway"'} + +#setblock ~ 50 ~ minecraft:structure_block{mode: "LOAD", posX: -2, posY: -1, posZ: -2, name: "nullscape:gateway_platform", ignoreEntities:1b} + +setblock ~ 50 ~ structure_block{metadata: "", mirror: "NONE", ignoreEntities: 1b, powered: 0b, seed: 0L, author: "Starmute", rotation: "NONE", posX: -6, mode: "LOAD", posY: -11, sizeX: 13, posZ: -6, integrity: 1.0f, showair: 0b, x: 164, name: "nullscape:gateway_platform2", y: 115, z: 61, id: "minecraft:structure_block", sizeY: 20, sizeZ: 13, showboundingbox: 0b} + +setblock ~ 49 ~ minecraft:redstone_block +setblock ~ 50 ~ minecraft:air + +tp @e[tag=ns.self,limit=1] @e[type=marker,tag=ns.nullscape_gateway,limit=1,distance=..5] diff --git a/data/nullscape/functionz/technical/gateway/null_island_checks.mcfunction b/data/nullscape/functionz/technical/gateway/null_island_checks.mcfunction new file mode 100755 index 0000000..8295dce --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/null_island_checks.mcfunction @@ -0,0 +1,23 @@ +# @s: none, dimension nullscape:end_island +#> look at every position and tag and bag + +execute positioned 96 75 0 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -1 75 96 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -30 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -57 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -78 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -92 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -96 75 -1 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -92 75 -30 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -78 75 -57 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -57 75 -78 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned -30 75 -92 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 0 75 -96 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 -92 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 -78 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 -57 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 -30 if block ~ ~ ~ end_gateway if entity @s[distance=..1] run function nullscape:technical/dim/to_nullscape diff --git a/data/nullscape/functionz/technical/gateway/null_island_pearl.mcfunction b/data/nullscape/functionz/technical/gateway/null_island_pearl.mcfunction new file mode 100755 index 0000000..e22394d --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/null_island_pearl.mcfunction @@ -0,0 +1,46 @@ +# @s: none, dimension nullscape:end_island +#> look at every position and tag and bag + +execute at @s if block ~ ~ ~ end_gateway run tp @p[gamemode=!spectator] @s + +execute positioned 96 75 0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 96.5 75.5 0.5 +execute positioned 91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 91.5 75.5 29.5 +execute positioned 77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 77.5 75.5 56.5 +execute positioned 56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 56.5 75.5 77.5 +execute positioned 29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 29.5 75.5 91.5 +execute positioned -0 75 96 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -0.5 75.5 96.5 +execute positioned -29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -29.5 75.5 91.5 +execute positioned -56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -56.5 75.5 77.5 +execute positioned -77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -77.5 75.5 56.5 +execute positioned -91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -91.5 75.5 29.5 +execute positioned -95 75 -0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -95.5 75.5 -0.5 +execute positioned -91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -91.5 75.5 -29.5 +execute positioned -77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -77.5 75.5 -56.5 +execute positioned -56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -56.5 75.5 -77.5 +execute positioned -29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] -29.5 75.5 -91.5 +execute positioned 0 75 -95 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 0.5 75.5 -95.5 +execute positioned 29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 29.5 75.5 -91.5 +execute positioned 56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 56.5 75.5 -77.5 +execute positioned 77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 77.5 75.5 -56.5 +execute positioned 91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] run tp @p[gamemode=!spectator] 91.5 75.5 -29.5 + +execute positioned 96 75 0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -0 75 96 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -29 75 91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -56 75 77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -77 75 56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -91 75 29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -95 75 -0 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned -29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 0 75 -95 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 29 75 -91 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 56 75 -77 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 77 75 -56 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape +execute positioned 91 75 -29 if block ~ ~ ~ end_gateway if entity @s[distance=..2.5] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_nullscape diff --git a/data/nullscape/functionz/technical/gateway/nullscape_checks.mcfunction b/data/nullscape/functionz/technical/gateway/nullscape_checks.mcfunction new file mode 100755 index 0000000..ee131ff --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/nullscape_checks.mcfunction @@ -0,0 +1,4 @@ +# @s: none, dimension nullscape:end_island +#> look at every position and tag and bag + +execute as @e[type=!ender_pearl,y=56,type=!marker,tag=!ns.nullscape_gateway,distance=..1.5] run function nullscape:technical/dim/to_null_island diff --git a/data/nullscape/functionz/technical/gateway/nullscape_pearl.mcfunction b/data/nullscape/functionz/technical/gateway/nullscape_pearl.mcfunction new file mode 100755 index 0000000..056e42d --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/nullscape_pearl.mcfunction @@ -0,0 +1,13 @@ +execute at @s if block ~-1 ~ ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~1 ~ ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~ ~1 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~ ~-1 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~-1 ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~1 ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~1 ~ ~1 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~1 ~ ~-1 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~-1 ~ ~-1 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~-2 ~ ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~2 ~ ~ end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~ ~2 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island +execute at @s if block ~ ~ ~-2 end_gateway as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island diff --git a/data/nullscape/functionz/technical/gateway/pearl_end.mcfunction b/data/nullscape/functionz/technical/gateway/pearl_end.mcfunction new file mode 100755 index 0000000..0aae043 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/pearl_end.mcfunction @@ -0,0 +1,14 @@ +# @s: entity (location is worldspawn) +#> send entity to the nullscape (the_end) + +#say going to nullscape + +tag @s add ns.self + +execute store result score $x ns.dummy run data get entity @s Pos[0] 0.1 +execute store result score $z ns.dummy run data get entity @s Pos[2] 0.1 + +summon marker ~ ~ ~ {Tags:['ns.teleporter']} +execute as @e[type=marker,limit=1,distance=..1,tag=ns.teleporter] run function nullscape:technical/gateway/marker_teleport + +tag @s remove ns.self diff --git a/data/nullscape/functionz/technical/gateway/purge_markers.mcfunction b/data/nullscape/functionz/technical/gateway/purge_markers.mcfunction new file mode 100755 index 0000000..de99e9a --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/purge_markers.mcfunction @@ -0,0 +1,5 @@ +execute positioned ~ 52 ~ run tag @e[type=marker,distance=..20,tag=ns.nullscape_gateway,limit=1] add ns.no_kill +kill @e[type=marker,distance=..20,tag=ns.nullscape_gateway,tag=!ns.no_kill] +tag @e[type=marker,distance=..20,tag=ns.nullscape_gateway,limit=1] remove ns.no_kill + +execute positioned ~ 56 ~ if entity @e[type=ender_pearl,distance=..3] as @p[gamemode=!spectator] run function nullscape:technical/dim/to_null_island diff --git a/data/nullscape/functionz/technical/gateway/rift.mcfunction b/data/nullscape/functionz/technical/gateway/rift.mcfunction new file mode 100755 index 0000000..2e6db61 --- /dev/null +++ b/data/nullscape/functionz/technical/gateway/rift.mcfunction @@ -0,0 +1,5 @@ +# @s: none, dimension nullscape:end_island +#> look at every position and tag and bag + +function nullscape:technical/dim/to_null_island +advancement revoke @a only nullscape:technical/enter_gateway diff --git a/data/nullscape/functionz/technical/main.mcfunction b/data/nullscape/functionz/technical/main.mcfunction new file mode 100755 index 0000000..bbba4a7 --- /dev/null +++ b/data/nullscape/functionz/technical/main.mcfunction @@ -0,0 +1,21 @@ +# from clocks/main +#> technical ticking - most things here should be isolated from main logic + +execute as @a[predicate=nullscape:dim/overworld] at @s if block ~ ~ ~ end_portal run function nullscape:technical/dim/to_null_island +execute as @a[predicate=nullscape:dim/overworld] at @s if block ~ ~1 ~ end_portal run function nullscape:technical/dim/to_null_island + + +execute in nullscape:end_island positioned 0 0 0 as @e[distance=0..,type=!#nullscape:not_teleportable] run function nullscape:technical/gateway/null_island_checks +execute in nullscape:end_island positioned 0 0 0 as @e[type=ender_pearl,distance=0..] run function nullscape:technical/gateway/null_island_pearl + +#execute in minecraft:the_end positioned 0 0 0 as @e[type=ender_pearl,distance=0..] run function nullscape:technical/gateway/nullscape_pearl + +execute as @e[type=marker,tag=ns.nullscape_gateway] at @s run function nullscape:technical/gateway/nullscape_checks + +execute at @e[type=marker,tag=ns.nullscape_gateway] run function nullscape:technical/gateway/purge_markers + +advancement revoke @a[advancements={nullscape:technical/dim_change=true}] only nullscape:technical/dim_change + +execute in nullscape:end_island positioned 0 0 0 as @a[distance=850..2000] run function nullscape:technical/misc/rubberband + +execute in nullscape:end_island positioned 0 0 0 as @e[type=ender_pearl,distance=850..] run kill @s diff --git a/data/nullscape/functionz/technical/misc/check_dimension.mcfunction b/data/nullscape/functionz/technical/misc/check_dimension.mcfunction new file mode 100755 index 0000000..c1d07ec --- /dev/null +++ b/data/nullscape/functionz/technical/misc/check_dimension.mcfunction @@ -0,0 +1,8 @@ +scoreboard players set $found.dimension ns.dummy 0 +execute in nullscape:end_island run scoreboard players set $found.dimension ns.dummy 1 + +#execute if score $found.dimension ns.dummy matches 1 run tellraw @a [{"text":"N","color":"#6e5980"},{"text":"u","color":"#745a8b"},{"text":"l","color":"#7b5b96"},{"text":"l","color":"#825ca1"},{"text":"s","color":"#895dac"},{"text":"c","color":"#8f5eb7"},{"text":"a","color":"#965fc2"},{"text":"p","color":"#9d60cd"},{"text":"e","color":"#a462d8"}, " - ", {"translate": "Starmute, et. al"}] + +execute unless score $found.dimension ns.dummy matches 1 run tellraw @a [{"text": "Error ", "color": "red", "bold": true}, [{"text":"N","color":"#6e5980", "bold": false},{"text":"u","color":"#745a8b"},{"text":"l","color":"#7b5b96"},{"text":"l","color":"#825ca1"},{"text":"s","color":"#895dac"},{"text":"c","color":"#8f5eb7"},{"text":"a","color":"#965fc2"},{"text":"p","color":"#9d60cd"},{"text":"e","color":"#a462d8"}], {"text": " has ran into an error. Please restart your world or server to properly initialize the nullscape dimension!", "bold": false}] + +schedule clear nullscape:clocks/wait_for_player diff --git a/data/nullscape/functionz/technical/misc/delete_end_portal.mcfunction b/data/nullscape/functionz/technical/misc/delete_end_portal.mcfunction new file mode 100755 index 0000000..db142fb --- /dev/null +++ b/data/nullscape/functionz/technical/misc/delete_end_portal.mcfunction @@ -0,0 +1,6 @@ +# scheduled function +#> remove end portal + +execute in minecraft:the_end positioned 100 48 0 run fill ~-2 ~-2 ~-2 ~2 ~2 ~2 minecraft:air replace minecraft:end_portal + +execute in minecraft:the_end positioned 100 48 0 run fill ~-2 ~-2 ~-2 ~2 ~2 ~2 minecraft:air replace minecraft:obsidian diff --git a/data/nullscape/functionz/technical/misc/rubberband.mcfunction b/data/nullscape/functionz/technical/misc/rubberband.mcfunction new file mode 100755 index 0000000..83be2bf --- /dev/null +++ b/data/nullscape/functionz/technical/misc/rubberband.mcfunction @@ -0,0 +1,5 @@ +# @s: player +#> prevent players from bridging out of island + +tp @s 100 50 0 +playsound minecraft:entity.ender_dragon.growl player @s 100 50 0 1 0.875 1 diff --git a/data/nullscape/predicates/dim/null_island.json b/data/nullscape/predicates/dim/null_island.json new file mode 100755 index 0000000..c07f8f9 --- /dev/null +++ b/data/nullscape/predicates/dim/null_island.json @@ -0,0 +1,6 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "dimension": "nullscape:end_island" + } +} diff --git a/data/nullscape/predicates/dim/overworld.json b/data/nullscape/predicates/dim/overworld.json new file mode 100755 index 0000000..880f97e --- /dev/null +++ b/data/nullscape/predicates/dim/overworld.json @@ -0,0 +1,6 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:overworld" + } +} diff --git a/data/nullscape/predicates/dim/the_end.json b/data/nullscape/predicates/dim/the_end.json new file mode 100755 index 0000000..fbaf72f --- /dev/null +++ b/data/nullscape/predicates/dim/the_end.json @@ -0,0 +1,6 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } +} diff --git a/data/nullscape/predicates/end.json b/data/nullscape/predicates/end.json new file mode 100755 index 0000000..fbaf72f --- /dev/null +++ b/data/nullscape/predicates/end.json @@ -0,0 +1,6 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } +} diff --git a/data/nullscape/predicates/random/0_001.json b/data/nullscape/predicates/random/0_001.json new file mode 100755 index 0000000..70e5872 --- /dev/null +++ b/data/nullscape/predicates/random/0_001.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.00001 +} diff --git a/data/nullscape/predicates/random/0_01.json b/data/nullscape/predicates/random/0_01.json new file mode 100755 index 0000000..12b4863 --- /dev/null +++ b/data/nullscape/predicates/random/0_01.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.0001 +} diff --git a/data/nullscape/predicates/random/0_04.json b/data/nullscape/predicates/random/0_04.json new file mode 100755 index 0000000..7e70429 --- /dev/null +++ b/data/nullscape/predicates/random/0_04.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.0004 +} diff --git a/data/nullscape/predicates/random/0_05.json b/data/nullscape/predicates/random/0_05.json new file mode 100755 index 0000000..80680eb --- /dev/null +++ b/data/nullscape/predicates/random/0_05.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.0005 +} diff --git a/data/nullscape/predicates/random/0_2.json b/data/nullscape/predicates/random/0_2.json new file mode 100755 index 0000000..9385d0e --- /dev/null +++ b/data/nullscape/predicates/random/0_2.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.002 +} diff --git a/data/nullscape/predicates/random/0_4.json b/data/nullscape/predicates/random/0_4.json new file mode 100755 index 0000000..e954efb --- /dev/null +++ b/data/nullscape/predicates/random/0_4.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.004 +} diff --git a/data/nullscape/predicates/random/0_5.json b/data/nullscape/predicates/random/0_5.json new file mode 100755 index 0000000..cf3e5de --- /dev/null +++ b/data/nullscape/predicates/random/0_5.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.005 +} diff --git a/data/nullscape/predicates/random/1.json b/data/nullscape/predicates/random/1.json new file mode 100755 index 0000000..d59c006 --- /dev/null +++ b/data/nullscape/predicates/random/1.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.01 +} diff --git a/data/nullscape/predicates/random/10.json b/data/nullscape/predicates/random/10.json new file mode 100755 index 0000000..71f1937 --- /dev/null +++ b/data/nullscape/predicates/random/10.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.1 +} diff --git a/data/nullscape/predicates/random/15.json b/data/nullscape/predicates/random/15.json new file mode 100755 index 0000000..af4cb2b --- /dev/null +++ b/data/nullscape/predicates/random/15.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.15 +} diff --git a/data/nullscape/predicates/random/2.json b/data/nullscape/predicates/random/2.json new file mode 100755 index 0000000..8169eaa --- /dev/null +++ b/data/nullscape/predicates/random/2.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.02 +} diff --git a/data/nullscape/predicates/random/20.json b/data/nullscape/predicates/random/20.json new file mode 100755 index 0000000..f9dc10c --- /dev/null +++ b/data/nullscape/predicates/random/20.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.2 +} diff --git a/data/nullscape/predicates/random/25.json b/data/nullscape/predicates/random/25.json new file mode 100755 index 0000000..ddc2b7b --- /dev/null +++ b/data/nullscape/predicates/random/25.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.25 +} diff --git a/data/nullscape/predicates/random/30.json b/data/nullscape/predicates/random/30.json new file mode 100755 index 0000000..4324264 --- /dev/null +++ b/data/nullscape/predicates/random/30.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.3 +} diff --git a/data/nullscape/predicates/random/35.json b/data/nullscape/predicates/random/35.json new file mode 100755 index 0000000..dbe0d7b --- /dev/null +++ b/data/nullscape/predicates/random/35.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.35 +} diff --git a/data/nullscape/predicates/random/3_5.json b/data/nullscape/predicates/random/3_5.json new file mode 100755 index 0000000..05a1f0a --- /dev/null +++ b/data/nullscape/predicates/random/3_5.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.035 +} diff --git a/data/nullscape/predicates/random/40.json b/data/nullscape/predicates/random/40.json new file mode 100755 index 0000000..9a331ab --- /dev/null +++ b/data/nullscape/predicates/random/40.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.4 +} diff --git a/data/nullscape/predicates/random/5.json b/data/nullscape/predicates/random/5.json new file mode 100755 index 0000000..0d0b123 --- /dev/null +++ b/data/nullscape/predicates/random/5.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.05 +} diff --git a/data/nullscape/predicates/random/50.json b/data/nullscape/predicates/random/50.json new file mode 100755 index 0000000..a3c55f5 --- /dev/null +++ b/data/nullscape/predicates/random/50.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.5 +} diff --git a/data/nullscape/predicates/random/6.json b/data/nullscape/predicates/random/6.json new file mode 100755 index 0000000..5f03cf0 --- /dev/null +++ b/data/nullscape/predicates/random/6.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.06 +} diff --git a/data/nullscape/predicates/random/7.json b/data/nullscape/predicates/random/7.json new file mode 100755 index 0000000..d71f093 --- /dev/null +++ b/data/nullscape/predicates/random/7.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.07 +} diff --git a/data/nullscape/predicates/random/70.json b/data/nullscape/predicates/random/70.json new file mode 100755 index 0000000..bed99ad --- /dev/null +++ b/data/nullscape/predicates/random/70.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.7 +} diff --git a/data/nullscape/predicates/random/75.json b/data/nullscape/predicates/random/75.json new file mode 100755 index 0000000..c3bcd87 --- /dev/null +++ b/data/nullscape/predicates/random/75.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.75 +} diff --git a/data/nullscape/predicates/random/77.json b/data/nullscape/predicates/random/77.json new file mode 100755 index 0000000..d3234cf --- /dev/null +++ b/data/nullscape/predicates/random/77.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.77 +} diff --git a/data/nullscape/predicates/random/8.json b/data/nullscape/predicates/random/8.json new file mode 100755 index 0000000..33e3d83 --- /dev/null +++ b/data/nullscape/predicates/random/8.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.08 +} diff --git a/data/nullscape/predicates/random/80.json b/data/nullscape/predicates/random/80.json new file mode 100755 index 0000000..47ef435 --- /dev/null +++ b/data/nullscape/predicates/random/80.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.8 +} diff --git a/data/nullscape/predicates/random/85.json b/data/nullscape/predicates/random/85.json new file mode 100755 index 0000000..995ea8f --- /dev/null +++ b/data/nullscape/predicates/random/85.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.85 +} diff --git a/data/nullscape/predicates/random/87.json b/data/nullscape/predicates/random/87.json new file mode 100755 index 0000000..2469230 --- /dev/null +++ b/data/nullscape/predicates/random/87.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.87 +} diff --git a/data/nullscape/predicates/random/90.json b/data/nullscape/predicates/random/90.json new file mode 100755 index 0000000..7fddd1f --- /dev/null +++ b/data/nullscape/predicates/random/90.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.9 +} diff --git a/data/nullscape/predicates/random/95.json b/data/nullscape/predicates/random/95.json new file mode 100755 index 0000000..75b00cb --- /dev/null +++ b/data/nullscape/predicates/random/95.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.95 +} diff --git a/data/nullscape/predicates/random/96.json b/data/nullscape/predicates/random/96.json new file mode 100755 index 0000000..037bb63 --- /dev/null +++ b/data/nullscape/predicates/random/96.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.96 +} diff --git a/data/nullscape/predicates/random/97.json b/data/nullscape/predicates/random/97.json new file mode 100755 index 0000000..269d16f --- /dev/null +++ b/data/nullscape/predicates/random/97.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.97 +} diff --git a/data/nullscape/predicates/random/98.json b/data/nullscape/predicates/random/98.json new file mode 100755 index 0000000..f4c92ea --- /dev/null +++ b/data/nullscape/predicates/random/98.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.98 +} diff --git a/data/nullscape/predicates/random/99.json b/data/nullscape/predicates/random/99.json new file mode 100755 index 0000000..f76bcee --- /dev/null +++ b/data/nullscape/predicates/random/99.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.99 +} diff --git a/data/nullscape/predicates/random/other/1_x.json b/data/nullscape/predicates/random/other/1_x.json new file mode 100755 index 0000000..be15918 --- /dev/null +++ b/data/nullscape/predicates/random/other/1_x.json @@ -0,0 +1,20 @@ +{ + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "in.random": { + "min": 1, + "max": { + "min": 1, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "$random" + }, + "score": "in.dummy" + } + } + } + } +} diff --git a/data/nullscape/predicates/random/other/x.json b/data/nullscape/predicates/random/other/x.json new file mode 100755 index 0000000..ce79fdb --- /dev/null +++ b/data/nullscape/predicates/random/other/x.json @@ -0,0 +1,18 @@ +{ + "condition": "minecraft:value_check", + "value": { + "min": 1, + "max": 100 + }, + "range": { + "min": 1, + "max": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "$random" + }, + "score": "in.dummy" + } + } +} diff --git a/data/nullscape/predicates/riftspace.json b/data/nullscape/predicates/riftspace.json new file mode 100755 index 0000000..aa3c100 --- /dev/null +++ b/data/nullscape/predicates/riftspace.json @@ -0,0 +1,6 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "biome": "nullscape:riftspace" + } +} diff --git a/data/nullscape/predicates/tar_bog.json b/data/nullscape/predicates/tar_bog.json new file mode 100755 index 0000000..49367fb --- /dev/null +++ b/data/nullscape/predicates/tar_bog.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "biome": "nullscape:tar_bog", + "fluid": { + "fluid": "minecraft:water" + } + } +} diff --git a/data/nullscape/structures/destroy1.nbt b/data/nullscape/structures/destroy1.nbt new file mode 100755 index 0000000000000000000000000000000000000000..1a35bb8bff794c1648d7fb016ff10012da7f1aee GIT binary patch literal 531904 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 QaNO2K53l*r+!=lT5Ao4mP5=M^ literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/destroy_start.nbt b/data/nullscape/structures/destroy_start.nbt new file mode 100755 index 0000000000000000000000000000000000000000..d82ea6bd9127e985816bb874624fbbe919e07e33 GIT binary patch literal 531932 zcmeI5e|%H*z5jvwpj_oroNNd#*ys?I|J@q%>573`z+IG(u@34G_|%IXA@zesyz~6PiPE zp5N{dAJK(yUg!OJe_pTm`}6+1-@4^}dR+dWyyCCbZ$G~Kn?I<#JN+%+uO4&%=O$Ba z>Lyb^Y0{8?{zYE>ck%*t!QQ2BzB_(ugX!3#1KwF@JTtAnU+FE`oZST(X`Fw(J zXNPxonyKC9YdKPGYHyh@_A7l%?5Ng>?d=U4n=gsM_r4uyvX-Z}xo(>=+;g;jPepyx z4mr8HcjKk1+xphLx->O4sknFJ`KtAU)@)yzI(SV}o})2gxeC0P?{@|G@qcG9eVHLK#hA6Jb{Pjd9F zDT(tQsTwOJCHAdZ9_Rh2>bf1c@I{-m!9P5TT>qAJzDji zkfiHdlN;x)t1^#Gvh}Sgj`JR>GV7B{dp9m$>YqEQa_|~^d}F~<|NKdnL)LiW8*`WX z=S;E;USo@I%wOuCH_5Ur^;?5)yZ8uU#C6$F-fbh#xL35LZnV_? z&X%l+kEOj8+hh2z4=Mk0IIDJTL0r_|*s48RvDh^%EB#h&Ez0m9?nj%hglxL)Q)vA5 zCBoKyKkB=hdTYmjR&!Jr#;)Q(n=U{$UE=r1UiS&wbZD<@C7aHU_PR4@)1ketjchvI zomqxR)K#){6TvSiq2ciWgI{j?;Ia#IbL1$B@kX4HP9&$EiD_NyT zm1MF@L6co0Ih*1_lU+TU?6SyY=RuQQ1)A*8kzE3s?2ePkPC%1gHJR*!&ymT_h9p7JbtPcfkPluhV8rGlI-GNJ`^Gg&}OPm+&Dd}y+JhD>$>n(T_nWGBBz zCOZR~?3&1AC!)!&BlX>xXEoNOB8;26)|u_dzA2yg7db~J1ld;C9qhCJF?#G&`vL=Flg>_b1DDq zdJmY%(WX1A8Xd$yM;%-J#rEjm^;2ux^wwK=efh53Av8Zj-cu6MI^`|0PN{s4tWz@4 zWOs&4b_O)rHK{{(jnayP)o=8_VZejihQHjiWW&j%lh5_~;Cm0<9QVE~=k569FK1J- z7r))|?kV?Rf7v+8mX)^YC!_cAmXh}9KZIH@Vig(OV`Omq$>5U7;7Z8gOk{9gGPs+_ z;FgoYEj!dPahTxT-(d1P>V$>27V!8Mb? z6_UXXBn#)nEFVrVe*ws_wQ?>GySAJJ2Y9K~CpBqn1E{|%)`^rmJCF@?9Mh2Hc z1}A{Q1?SI)W>7+VN?;NhT*KLD9}%jzVfx$2;xd6OE_GyaDUijbNEVm!NHUAhBNN?h zGPr4Ea0|%bo+E>MkqoY$tekyhlu zxnyuJkijh)KlM}Y>8fiD_;gjb77Wh0J9I4WmBrj?QM@q~&T+`PYUPirAEOr2rH=kl zvbSk*g#^?Z7+PKKurLF+X1roW^#$qJP%OE*1i@vUuOJ;E^nZOS1ag=0dTo6IB)X} z`~Krc6JC6Cc6R=@j{bV`ij*@?JHXr-x@J(;;FPxy+X8VEq3rAF%`4a;}9^_f+ z;K4D8@3_H(V|I`iru63`@br;0XA@3uD&tN`vn(c) zoe@oTd(mXKl}vV}XtJv%lbs7qb~$LW6Uk(!LzCThGTGV4;A9Kg>%_;&v5yX|Q;N}U zw-D`iPmtZtfOfl5wA-N*Dl(ew1hm`P(QcPRW;+?pb|TsB-us`pjaoWztr>Ld1=Bc1 z$2sC1X-Q|)IMq74^lIm6S3Pk1x-T^LUD1}R%oxHV&tS#xAuF7sg^N|cQ{yzr)LWU& zLeDz$pI5Z`Wg&iC$B~a6{~m#VbV4dI8vTbDWA_ghF@y{839nOZw~lzKj2LZL;EBE_kwH zy5biR)}tO$X{m>?+n+f)O7V-R4QG>!f$e@Vce}ThWrsHWupCJlM<(Z}v(!_SFLlS! za^<`?NU5#~apc-`b(Z>i#k;!K4W>6QnBHCn)7vLtdOOXfH_6PUHv^d7>|lCxg6XXZ zOmBH$dTRvJTN9Yxz|orvOm7}Az4^fO)()n(Wng+c&ZRdG*lcxNv&omZszjX24Z4L2 zZcf?Oz|AQ;JlrGGfnZg#2TX4V!1UGzrZ*Fp-Xt)+xxn;x6PNm89?nEniiiI zn5e>#W#|1W{AjCb@8W&CLZh@z3LZMpHrf5AD#O$o$EY*LyDUNRh;G+{v$x%==rx3E z+=(hJ2%q8w;VrNhE*odr5_#LLYf@=J=oK#rOVb}sikEO$wljTOodt13`GPPC^ZO}Y z!qdO96J6zxZBc1Kv@2c^{=({7#YDF zz94*Lk_&=KP9T$9E|}zkpMptFM<%&dV3HFTWi-l;!%E|aFZfwOtT9n7@fF6y3d!J! z)Ry^I8(R~Wxm1Zwm8_Gm{fh&d8$;R{M!+*tt!1f}vqR@AVGY^o=8!eY zTV$upCo`P^&2;3^#(}M5r*o2>&V^<=@@(V4X0p?jqMZ)SblGHiSwVI>AKB>yGSkVk z$xgSC>~vPN(~+6ZP|{weO8r+XBp$6=9hIQZ*18FRIM>$2_Q8LjxiUYi(h~zq{U^Ch2vdK>8 zB0HU&L}t1ZWT(p@JDq@bI@L-ql?Glarg4HzWT!KdolZhK-3T(%xyeq4&O3`}rz6L7 zmMP>j$TQ>}MIzI94tZG~CNIkihR7d067g452fBJx2NT7RJnFOQOmu7gZ; z@noV)AQPRAOmqU7=tOi%{d`gFKJKOX?glBbc;Q`1hl%b6Dc95-Bo-Q^kPCusqT&XN z*U|F=!nmekPxR^4XUV6x?mE7z|~#_ zlYP!k_BkWj=Un9Mmy}k{3w5rdFD1Dmy_JE%pT<9a%XG zWO3QqOY4dj!===NGsrCNCllRrGSTIeiOx4>u{1x|r!WN;niuppNl7Ffw)K{XlNa5A`JGPo=7sxS>NRD}A zbk2DuSzMaQ;M&Q`*-BQH-7lkQZ zNfSn@I3}Xcz%Jt^-#L~vR}8%H;$X!UYev<0d{)KINHoak%4vr8H)QdAoD6QItfSr* z50&k0B*#6I$>2_q!QDazw~7qzF*3OQWN_%4A#2GJB zB7<8^26uoAZYvpFXiQN|Cc`6fue z;2biGKSu`lA{iXIy)L@d!L#ILxt|;sxXEEbA~`HDki!Cr92OYJjgdui%p;SNdlt>z zC=X+1bI?SVC{D6O@sK5oK$a--m@yB4`#$d^d)+=VxX-i(&V6Y5*j9z70Fr7mFjE)g zMSY-JDY<>!cr-Y2z-pA`UEKOM9l1(MN(NVKShC4+&rz-Mco_8QzeEQ20U2BeIbz*S z1{Y5b#}mi`Oh-O3$UuWrt=DI?Z^DNrAUnuCy9IIym^cy~7Ui z&Fi9lQ9xk^{coFld(qA7wvjiKPsrdtB7SYXaNmEu{TCnp^yWeT_TLMG1rrv?rGI?q zKxM}x?Tdser&cp9-7U+tYPs%~5sF;0np$8pz-($l%bG zi|Cnl-BDi{w}C^2Sur!`!mlLii=_uH3#W+voPv;6v*31)=N>^+Bi9kCVfmm1J<`_M!f8QfAuvu8$n|j8}~el=kxa+nY!cRCXS6+#`^O zgQ2@IiKD^Su7lIa-I&m4J?L&stH=VZn4DC1koDJaG&r)jEGApdMpn)eSviZUwMLG1 zYA=*E2);lTmlw!I4d=<=YRKTulED>_!-7(BSYRT9^N_`*i!3f3WN;!`Im_s@?DJ&h z>?KQ-_sQVU&Fk{X;_@vrI6GNfy2#=(pPX}+$l}sYu9vlw2O`_avm5MWpF`KE8_7Or zB>S9^>~kJ6&w0o`=OOzXx>#06_PGRdJcpj>W+hwBN{+-c$d=0>Th2kYoP%OHuejo1 z<{RJo>40%{55Lm;rvprHe)A`jYS-TP=5vk0kUgzuo%7_!E>x^P9QXLBR#RSJ;xNIv z%W>tS%aHTsfBn+`1Na!2)ZFn^xByUB0C~4>_5GbWG5D+pkAAU6F`%wEo$xf->7FAy z-F~vuImk{Y%TJu=?w7^CU1^(s(mmK;HqNqz_EDeyx3UF93Es8OYt3$t^qZ#ik@abN z$GoY^dThM3B+s^#&-~0E$5XOW9i&b&C*jNvh_pSm{ z-MZL#$*O1we=FJPGRYFGatv95p?O>o$fmoAEWr!~WH#8Lxxhzh)DvP)1DeR&$V8r) z@s%SIOjK|={T%p^Y&!cRWYZl+n-1-DJISUqqP^}Q+H`2It0kK*g`98D7m*{M26E)% zLIqO4=@yVpS5MA9yVjC5*ebFH6AHCjx4OE#T|=DK3E>Cjx4k2W2e>q^O{^N+YcLzxbRKlc)Fkq8T`rjo1oVxAbL6_43~~j4 z1$}i8eHJN~Z`}GRw5dqwj#kFz3h+(xii^BXFjuan`)dxjN5AGS9I3Q!Rh;6lJGQ8` zE>rdDG-CDLf$VwB0Jqia#Oy1bT6Mj zk)7^Lj5*ypanRAHD0t$8Y~dUypp>ueYA9_x#!Ji!-;H ztbrrL1m7-4dY3;AC%2FuPH7?ibp|gcTdtUFxh%5fvdETmlP%{aTW%oPas$bh%O_h7 zJ>oT!Y`ILb&pFAKbCNBWLbhBA*>dsZIqgr9!PS$&rIEq;$QufJP^hrJAp+UYuIEox z`33Rba$C+x_fUV?cuUJl*vH_4`H@LotMcl*m{d1sgTV!MpXDvbEB@u*f2bo;hbl3* zGQC-37SADrYbS%l%y|8}1G?^6=8-$5zP>vudX~ANrUj}jLsTx2!vdiQ9Po0WvD~Bvm9At?i{g-1Ow~R=)4xCcgkq<*8 z&4qLegM$^H_KsIA0~T*T7l}*JT{&$IG?F*WPs!jmlViGia!i-4+K$rY1`A!;OFpkh ztVV+)N8_HL9Bn#Mv7}W>0q33dnp0q5+!N5Jk}XHhHR#jHmP;msOCy6rQ-J`sTxAj& z+-Nd5a!o_!ShD3tlEIB3gS(FmPEQ6$j^`@T@!T5lDVB?TMCT$O(Ye&RuO#o8w)l>J zy8j0~`*+;=+U(4A1wBhEsTa%82+5rFT;>E>_8sZmpJ+a*NUqJUPdYF7- zvWE=rZZfz{WN_2T;F`$bhLFJ(kik7k2DhDD)6q-@S4aleKn7PwE)qj`uQP%x+07yt zTwoFz+-x$qX=HHZ-7;{2%yR`~g;Gimc|7ELVHdgw2l=QA-QZ0oR~iMMCrcDBnZ@(T zEROEjT|%~;ovgoHWc?+P^_Ps+Up8-RLS_b+(SHKnEGo<&(?a2|4dWLF_rqu9s-%tlVlqT7U7 z&_$)&w3bH+BYojV-wYW~K47(yC5nwKQ3SF?5y{PAf@W|qZhnRgZVnh+Uf1fH?WZB8(7GD6b+r+419;XA$iuIVvh!nPlb z>@TEl?=Vh&Vv5nVuSs9EO3T+T?Bs%BJNcfZk$gsJBp2x$$v$T!`&p^N)6$d=0>`<#PpIS1KtiDb(qk}YQ^TTY%g;}y%7+KsS2 z`q5Pn=y5O)Xss@@Xqj`tN%v5HsAtbroyekED=kyoC}odu)n~l+FQ5l5O3C2ywEC-@ z2Ps(E*S>6WlzPuK{uP#N@C^j>b6{|RqvUd&4s!8g9U0so$>8E;L1`~I-!8}XZtY^~ zV%wT(a>S}5pB)S2S>+;GfCb4K#r!N;fSo1_F!YQAx7P9~;iNCnN%i4miDDp26bUU+ z(!mL^AiCLSGnvIdCWAXq23JD{S5D3m9U_DCk(INKT+|?t#ifIMcS0m9XBnN`n*z>% znJr{+CbGCJCF?H_S$_#+{WXxBxy&b9E}v{U^ia1yDAyz9BdgOa+!PWN_r6XBIu#awEv#QUTyDHvxXAPp=!7d^+4c z=#4c~YEmD5^wH`SE8AT=H@tSVQmAN&8~YF19{AB0N1ljJKHt@gh_QQdvY33(RZKoE z$&f~HJx9?)zKiB6AnPyk zg!$kk@a>AgaWc_uBokdVndmY!S7;MPOMe@g=mav+iR6OeAiB}|DKgP*A`_jHOms#v z(RB}x@8U2W#ToEO-$73xFUtgSiMop{E+w+KM9*Imiop3V5uN`+cQHLd4ht5LGnf0x zmUEK>xWrae>U@BALZyGK-@RS8ek~ zKM?(XqeoP_r)Yiw9Iu)ek-=$hx~IwflH!hfC2BEU(Z*ZGhEX@7%4v{|oKm-uLpsA6 zaJ*_*PXK3YN*D-nHLvGil+Ibd*sPtNj|;}!q%e?$h? zN(L8dWE$xmIA-<~@19V46UYLeyIp2T$3%!TW5!}%0J4W_y_pmqGG1ppCN4O%MDB4q`|C#T*J4bjnnQDU zx!^+mb+O<&TcBNuTyf!nKhy#(#yll*kK^rZfrbs}vdIBmXA3l}a(0oGvqVm)ceX&| z5?!bT8kguoEzlyzEMFv^Vk1WMcD6vn5?yBtG;HRwvq~RJbOM>^I$NM&6Ahg$(6~ew zYJtWjx=;%=F41+iK*JJUXA3ke(RH?C!V;ZCCOTKB)H^nGt_t4K*|CVr;^g|TK&WF8 zm&J?8Ebbt)xPi>#5}CzCGKcRqS_A-?J$|Y}^fzQZWrY=>T9VKE{Y`fyf-i^i4-quvqNtUzs#>87zA+H`Xy48j~ zsT=I~zltWig=DfTCX=1{_(brr$Z53KnaEz3l>v^*14qab(!VJz~sVP10f3W9(iuu_o^Ot_3_b>a*Zwh3cn7cXK;yY!w z^_<}^Q#{0GsLJ0J(yf6bDh-B;`tN#ocy~Fz)YqK#(J+Q=x-9ofTh2+h+Uq|$e?>45 z^#M{o^*kfrLETVH)`0mG*>ss`(>0S#XILLIq9XE}s(%le$;Ek0nrpdC;db<%(m~!+ zQfk3W9@x8(sxL#1XDlMqK|PrcTH%9Ii*MIW?8Lu>3;vIsAn^Tq;hTrhh_GB z?tU5Ar`EcR0ax}PC-0ZTw6ad}HK7;yNT>{1Ig+#k*qEaMPPL) zjU=nfd1Q5Ym`rpR$V4}UOmrz^qBD|-F0lrjBXXfxJekbm*<=D17MKIBs=a9iY4+a-FM3yLCvP3yW2Dh3F?f@CwRx-GO7}FxMLJ`J+hATvn!n)3U+&;F!le9SkneKo00GlEKyfBXB`$UE7bp@zRoB z-)Vd3#;H9`llm@s>Bh$IJy1Jau7CWeb@jet=i((!?f2XA?j^?#o5|ps$>0jf;2Ox_ zD#+kE$l#Wd!EGml+eij?f(&jI8Qgv{xDqlr^eNu*+S+~G`>nbHaC#GcGufuO#Pn@L zk1L(~;y?M1QY~HW_2WL)N2Pu?%G(SSPX+fnu#@Z94Ta$C(nda{w58>o!5PU%$F5p%3pDh(xSeb{iCiNk3gFCT5FPW(1cwD?^r8O=a?Ddqj(Hqp zacLlnONlH|M6yJY^<;@M8O-7VH<{?{WTJDCiB2RFolGV=nM`yp&0XmUqh3u%UY15Q zIC5t`qXV3CMi)AJ$Uf&G`<#dDb2@Tu8=Az?gDG@mpF`J^+Q>X-BlDb%>~n?}XT4(S zYBz=$xTIS4wa?)HD>-v{i45)ot$}lYro1J|aMiAb#E)Na(mmAw_3m(e{;PhJb`N@j zwonV;Z@tu`*LTL;{zkIxoh45^+P`E{uf9ueZ4rm;xoc7TD^L4+K7F;;Gv1ZtGle=b zxIdD?og;&Ll?-k-8Qky5;7*glttEpyLwFP8w=vJTgWXol%c3#q|yx)7e zO5a5niMh!AB1Lq+qS@ptO?6~(iJqP{oJ@3Raam5bTn1U9pzHh4`U_p8FObEhK)yyO zj?iw6*i}zbf^*5r`2bltH<8aDQ^@+uNY-C2^8E@4&Eo691M7r!U~n=zxi^O_QTCH1 zikmD^63G&!nhXw|mMtb*&Olbq5?MKmWaTWAQ$!Z>0458$)2D^JEQ2O;Sb$E;I>|AQ zhaB?=WN|5y#ig8`^njq&q~)mpZU9}QzK^_L?$z3U={Vt3+_ywOR;{z+vW~%5Ywe+W zxv-HOuv*Do6|LkBZ&viOBzJhrAp2Yf+2=CIK9@oEIS1M29Auw!kbTZU_PIo|&n1$5 zE`dD9C;w@+?v2L6@8*-!dzs{QnMt;slWaLB*>Wk-w_Kol+EY_*y8j0~2UNWA+G|VK ze6X>+Z`BX`$HlFcXH493%HNRhUEKQ*r&Q~*oJ>9sDj|b2k->S%;Ff9az$A=w3U7DE z$YI(%rS-l=UY4iG;8v5t9Uz0-N(Og<3@(ohPIDz4;V6{NWXm;^!4;ChHITtokim73 z!J&iId~%w>9{ud*E{9s@Mh5cfva}Z5>OkmjQlV0BU$uPg%I^wA;AJVMsa5E`(v}nL zDVf1po0VZ3L9BmqTA~_$d(hxVS$YdP9(=X@))wXoJkg!?PPJe zgAC3}R?arEa+b&vMI^JhfqZpDCQB3v-CoyudQcl<^zqlBh=DqG^-g+n$z+hLx$6}f zh7(E?+WuW?$xHXKQA7P-=Ly&Gzjk-vxQ;J7q9-U;vI29Fk5{Ep;5>?+-0ahmLrxOa zszr3;Ems`?rS=#6=)%O^_xqx*P>vu_2LX2HVJIJ+?w{A-Ao7430d62_5uwcZ}5PaX})vOKT$e zEW}REqS(o$Hg>Yl*~vaS9^>~lu4&l$-+=OO!?hwO76vd?+QJ{Q4YHJD#Frhf3! zCB5!6-!=I4*EUR8_p5Phv!t>+E9Ck=zca;UsjfVl@Yx0RN-VEj@DFne;6U;TY(BZ{ zG@op_OtR%N$(D1HE$1X#4t)b5g>1P}vd@*0EtgHUTsGNqKCK9<&rHo zo(!&<3~o3XTrnA3casXO7IfIiNq2O~DY^rPOzuEyAzy9{8p)Si|MXb$c~ckzRjMz~a*UEE(KfFu1@ua#(%yT*u zo7+oo^`eg;yL+d^LR@_<&w%coBBqkn<-kh6O( zaso^wC&186!en%I?|HC9FdP%d;)nGpHKuIbR&@GFA0A)f5{=QI5_@|{x=NhQJ3*wcde<~)n`qAQ@^TP zU+?Ra@*Z4Wu~=Nx5WgUd0ixH~()W7(vA}HdK^OS~LI8br_c`*ie31-p1{s{0432!G zDe$Me$<0&HcXzAFx2}h4uIM3m{DPBiWp^#~swJjVN54Nz2y;wEgf+F7eH)EjMzxj< z?hqMV85x|P4DMwzxE*A0caw`wGs)r-J-s!N+&wsvTrO-NA5u!>N+XMjoB%sWz8BL> zmME*q;10+-f0^QbwaPLxEh}wZZK4~YUqDaKLeETg6@cp=BmrCk7o0?<@#AC~KTHOP zUY2!a%e9fg?IeS1B!fFajtkHu>oUlBS@hsDft=lQkqg;Ha_SO&)h>u`*nNO3QJTmS zC53!+Y$Qt*7x{EmB1;rGiJZBdL(W|8Clj5UOmvB4qBD?*P9hVXh$cF8xZ2%3Md>Y* z*r{c>TzkQ8p0XZ%=8tZM8Jtd5&OWkowvm-{2N|414h!PR;Bv{}#*@KSlfexqgDWP3 z%OZnwlfexngUf%a@Heq?6(I6g7xd(Y-FkAvZoTG`d#Pg;wt_2M-|cf}kCzfk zZcn{u&ixbmzIkhp!R;r5 zOD2OWA%ioK!FkExZX$zQP6oFu-x@d)?LN3Bm7c--mRdk zGPnz5aOkc#-5oe0)NSp09}fAKk$o_!+f=XB)r5+fNLdfK8mhI}y@ zJ@?E{zFtvF2G>Fcx1204^U3-vhYZe67MBLH{*uVkuEjL4{;DMR>$Z?v`dCJTmt}Ak z`POv@SzP9l#if<3ziedvC6M)(NY-Bhxp%OPPVUVlvv@n1#jRu(w~<*~BD1(iW^ozK z;zi^RXyg=;Wh6P#U?fYF7s=qzC&w~bTs|0|d_J72Z*6^dJXwI*$rt9eH(-72qL&p< zI8IS*UFO<9+vP|PqtY(&-wmMW@ogqYr=?fl3aCJNv^uABv)PP*MOq} z!yVHH3 z9(5x&Z20A%*Z=$E`i)Cmx7D?~c5e9aXytF5i3flgWEv{*WGkb zg>aOg^$X0qi9$>18u;3~-A&~v=eT}-!=m*qw> zxD#Y>tH|K?lfh+^3!%H`cq_iBq4*f%TB;Bgj^F#zGoa^qd$N3LW!9qqyYb`=MW@5U7;7Z8gjO3)Vi(HQ4AV+i#@?@|?a=)TPvd<-weJ+vgb9S=N*~vbKo>62c z`&@TlzW=*G?yI4FEPdBV<~jB1zfMNKnA1b%IS-lVJY=8qka(`#bP@2m z;N(BozWYl5H+$Tudtk$lfBeuxQ%C-G-x1eXcZX}|3*T?QnAY6X(Zd!{u@%0r3vK?r z2gt=Z-3=qdC>M;S73%G77^zjubvKOEs^zwkiymsp;9AJwj*`Iz$>7i%%5k#g&^JfU zkuA5I4DK`;+#xbJKN;K(GPqM@a4vH8Yg28_K1X^CGF1!sa;0}J`R*>d?7>BzDXb%py4I0LT}uM_*7YQ?05i`3 zgA1S&v*=sb=ow7aWaXSeR?fr8;B4fA;S4l5a%HAKj(KdVrHHyv2^y*CO`;wg7U+}7 z;M!%4maZvTy8-km-4U&&)WgVR`}dGf>HK7HndG3yPR^*i$Tzkma$Z(U0c(_?g`B$F zPG<3HGSOv_iS8ycI2)P8B{GYPWEPk2BeVEoGK*J}S^N_+I0spxyhR3giVV&`)?X4? zf5~M1)!i^saZz}T^|9-27^zjubvKOEtmVk%8t8_R3FP`O^qm*4FYH~sCCaon=!YO)klC$pUY0$1UYNfwopf8M+ z3ck=(nN9}hCHI9fXM^venT=#{Nnoe5Ob1&oaFHAr6q2QL2N~QlGPrVb(1R|9_C#Pz z`AK&;G30gpu0RfY1l0-}Vj!Xu)`7!S0o|i@G*~$Yr;(L2dU)w7vi>S2>o0VXzKyKE zB(nYz$w}wn3uL0ZKu!@AkcqC8OmrUd>8guNbRwDPWO77j83_(oEn~po^yK`Pd@tB? z!G&aTxrZz+on&!oB#TSem+q9OE4?)7i-Ds6CC`9P5sBnRpE8=oN0C`Phs@#*GK>4k z;9O*hvYZTVPfN`{m3lP9fR53T$Ij|(;Cc<4=CXUY4OQHd#D7vPGH@U3V+|aM?%3C2 za!S3J9MWZxEtf^MoSSSpH`#In$(9>Pwp>2ha`|M-Ws)tINw%DmY&j>{aw(d!oa|g) zapB+oV|CA4gE!PQ_up{GT`#>Bf5U?h_PguMu|cmdyK&;2wCC6KE;xJo=;?-4uZp`3 zyNiwuxnXz7JwJJ8&)eCX+YbIL{r7|YW#cScR@$bYbSwDi-&AtZloyydOmOaUjB15_ zG!$%A_#VP}XEE~KVB0$#P`iz4^*%sem##J7b!k~}Q2G87Bfg}3zg+o5yVjmr`STiU z5A#Ui3ag3J$?LM7ykA;_>kc}eB{a_6W&&B>cFao7;&uIv0Uqvo)xe`E0b(G2s2_2954 zSf}!;jHWX8t|H4zp@_ULcazs;23cL&){)ocA@aK1Pu?#bHQ+RnkVclyN61d+Ad`VO zg1j#GkW&qA^tv2HUYAYeb?GAWxWNV%&z5J%XIZ6W@hqWhQaZ@`Qb#^AkVlhwyqL`6 zf&(0nOXzj^5qZDdL*{XDEm>bqA?wQnWHNA)MG88o3pSC-z(rn{vYsrScaqm-0av7$ zKXN!5k9MRLmy~&yZJ#BsD>-pIVD{GfFV4_Qt|NzQm$lcs-T9tb_q^*g&PvRv-Y(dS zCf?T1ZS$WD`sTOq_2*gN6^|X9B`x;-WufQA#U*J)d(+DcysNFA#ec|==bGFzDrX90o6L&B-&g?(&#Ji>UJR)1q2_63~x!?AGvZK+QGiIi}p?S;H zoD(e{+syt0-?dlF8#{4^wYcG8>kGBp=ae=Wn*W$~*8OlwLiWX!mWdUnpLZB0&s|nh rKQQHk=G}G^V0&v|T%vSNK+1C!&UZbwh))(#i0 z)1hylTzURd`CCBw^@k_cDHQ%=Ws!R1|IWRLZHuqooY~edXP0?8r@%gj= zoZ1?Am}eRqGp3#GnQ3aAcJ0iJNaN&ZkH0b)B_jzjY)(7&3Mlb)&CHEe*Lp&wCr{q_ z!l&1_mxou9KczzD@PU}4!Hn~`K7=%|&&WkCu5FRVVf7Oeuk~Dwp9W$^f_1AM z@PX<-!!twDz&IfdRj+j{ljLgln+Dm(UOAebkpt7G-!N`wKf^ME(?B=@te?@CIgJgh zpF2V9fDXiN^CxTML=LY3>OKn51!C#~HOj%Xft(G|2C^2a4dmq0GbGZ^M%Y&T+WvEC z&(&t(!$1qu*2rxEYORL4SB}Ys2k767W3Tj2qj+|@q3M}f8-Kn2Qtvz6D6HO>ck@5~ zvp_{}82j0QL1dDAclMf{5;MGw!{Q^3pKEYu=x2~S8)2G1lht6lA#+w8+m$~&D}G7_ zd^TS2Oc!YDtnJur-L*Ud=yXuvLVUcl=M>13>n}fN1=$+f7CFB;;&19q+Xo*T+8O%O z)>L&V$;AfU&vzfK=o#wQejPQ6p9r^iC;clO)tIHIxzP7r$lymuRwPSi#JOBOtb!vD1 zEZ^Hl3rzQ@KHfX~?e5(Ihppa+{F*TR@QK;i+P^H!k$PYM)AGGpS>>u_+56vg&rP{_ zyS=@=UR!;4p6r}IA77pQ@OSs0zs?s;=O4bkXZy+N>+`*89zFA&eMrsh<>mGDQ?=%O zmEW~{S7&8V=Ihu3`)%!Sx5Z!m{h??w|NC|SN_OAB_Oe#IeCpz~w{jwNuWf!l*MZ&Qsnb%+Gp_sYjx78B{2q^GZIZ^}$k-i6uhveE zD>u9vUA9l=vX%a66Z@x6&la5Pdiz^FI^+8G!;Bq|!)Jex_^kg-yiT&(uGG%==c6mP zCj@D{*Z2K=a%Y{5<^TKj^LLraSLcMuS1+IW{#;6*_Ws(aojk8+_}?nLdfk8Zsjny6 z|5}y(7VzFEqhB2V|L2y?r^6pfSk^mzYOMbnz3!5^;F5k|-xAcxG0|Nm6 Cc_c~z literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/gateway_platform2.nbt b/data/nullscape/structures/gateway_platform2.nbt new file mode 100755 index 0000000000000000000000000000000000000000..e6212ae187190ee43b92604d5a54ab5d46613956 GIT binary patch literal 9677 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 Ia?>;a1H+XVAOHXW literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/bottom_start.nbt b/data/nullscape/structures/rift/bottom_start.nbt new file mode 100755 index 0000000000000000000000000000000000000000..ccfb3e1e115d9c8ce018c9f620ec5755387dfed0 GIT binary patch literal 294 zcmV+>0onc^iwFP!00000|E-a|P6IIzgeSTDIF|xC;3?>-sSy?JX>-{G2cKw#vos*U#KZvHj)jn|}N-1YXF$9O3qa)ds-mgh{OFJ=`udF9m z+{(D^tmih-N>4s|4|ZuVv`btcpEq_bv^ALIEo;^b6*5Z|gB*|t*sH?$duh>MgeUz= zoksc?6N?=9u8z&Pi@N(auHP1)Q5B8Ps0P_HjpSIB_h+o1Q;3|(nRCOCY(6@v4IWb_ s(WZ~cL{EkIM<-m0n?5!^Bz?V*uP}ckr58?8BB(#{1wes^Es_EN0RCWv^#A|> literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/gateway1.nbt b/data/nullscape/structures/rift/gateway1.nbt new file mode 100755 index 0000000000000000000000000000000000000000..5212f52eb2cbbfff379e0af2e0467c0fefbd8148 GIT binary patch literal 5005 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 L=`*iRu3Gg!S_fQV literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/gateway2.nbt b/data/nullscape/structures/rift/gateway2.nbt new file mode 100755 index 0000000000000000000000000000000000000000..9b3bcf9be75aeae4dbe8863e5446a406810d9d59 GIT binary patch literal 395 zcmV;60d)Q!iwFP!00000|FxFAPQx$|fG=@=?DUr+23~}L4T+hNwQ^fiS+q`7TSA2a zo`;u&RLZHXXpb9WOCBPB{?0mIE~x+%WZu3T0Ra0co0&B8T7fh!*kFx^{ZLTMR`vYV zSIxtn0Fs0dl`*89 z<`kQ99z$Bhkd`r|on91vG}0JS5ks2Ake-&5f^wr*CIqwp^%fGcC%rZ>IT-7iw+pKs p;M(nBZNA-Ex19b#E*wZe?@l20un`DSX(TJj;vFQ0e6+1Z_O3XxpWw*FEjA`!e` ze!#G~gJI`87*->JVS6|jwpPKgwF-v$To~pKhRq!en>!eG#(`n}fSDU~*q#7}`3#2n zJT=T646BjAu(^X_=MES)cagvSmDW=SM(e2q!}4^ny|o@zdlne2_YAkz69q==2Lq$^ zgMrcd!N6$!S75aMD==)0Vg6d*6d0{mfAG=3Xf?K#(Q4YjXtkCWFECo|7Z|Nh(Bck8 ztF^ReWuoT=7_Cmw)*%?}T-Nd{H#`fBcE$yU?Y)KQc>zW{Qv&nvo>@rJEV@*ZH&@l~ z&Gl72|IB1qujKruZmQ*7`JsDVHLJ_3%`ZNc_dAj{Tu(Q?p_gbLLv-pXit}L-L)6vN zB!;IDEnZnnKhyO(E)< zrVw>aQ;4c*+DG&#hUjq&(GyMd$1_Cnf>q6^KB8(y^$}Gws*k9eQGGgBjXp$OqYu$2(Vu&YW-&a?VtAUx@HC6*=~)cXb5BwHhvOQkJcg(FPET{0 z+?Ll>*Hz&STaroouDq#a_NcgCwDqbk8^L$49=}`O-Pg_4<$uVY0VOhhTXyC9>aMNV S&87hTCVv2rEs6)rC;$MLn97U* literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/gateway_neutral1.nbt b/data/nullscape/structures/rift/gateway_neutral1.nbt new file mode 100755 index 0000000000000000000000000000000000000000..a0cd880bb20cae6f4485cc194e3ca1990bd3773f GIT binary patch literal 969 zcmb2|=3oGW|66aK_Y)43aQJBb|JF<=MpL~S(Q>tQvAa~6ds39PESY=c!KvqkPbdH6 zx}{dUAgg*u=N+}!jQTr2-#y&6^rcRV+LYJ-vcp>hwtW|$UA=Fox$lbIM=$W#Zs)rl zEvzPPe){zJ*EgTZ+s_WTqkH|2z;;i;RbMag-TfiFTTR+mG_maZNxm5?*G%qT)?+X= zM*Dv8TIXfcvM;XaFfcPtD}VN!`cpA**b9|J14 zQLkQCdg4a5+OcPry*q$L#!FP+x4gai+`jLZ-`*GgwlBE%*~;(TYb#%UHQ@d?%RsvK z?cWNMZ!z=wkDc?EIQ!00hi`_?p(ldNIt)@x3#xLvR2TW4uLmQLiMfV7rcZ3oNhPgOJO(8AkNrx>c`tGMw@MO_ zv_AH&Z{z3Yjdl{Rn?W?t`V;rT0QsBmvwtzwk^CZw{sQW z)An!MxYz%SDYVrQk9}}(dOyFO{0gb$=_J}J}oY+|LAf7wBn_RfMecMLcC z@Et#OUPgO=f|td$joIxd6Xa&TFql`VWpEHE$M*Nc6obt?XN6@ypSVytePOYdv+T6K z%9Iy#rlt3lo(!;`nk*;z%DwF!x8$tIwzPFXWlswBrM%cT0i@K}yl-aei|+w#b^NI> zqNXm4;XZC-^kvV4h0j}g{@Urw9*?r>n|f9{c6HJJ-TRFm|K3uz=CZ}J$TMy83e9FO z|6WvhFokcjwa-I?gNcg{PvHx0yjZ!sE@g$hro~##TS#}O#C;#2z@NB`KVpwqjT2}#ne9)XI+!K{2=JG$VU*G@^O8Y zXQ<|*a4@>A`3Q*2)5UYwRAs#1mHCPb8B z+YfiVf17!~>iZ4;*|Y0UoEFafefQ&iaVL>&e{T4_eV%9j?RMh-OJ7d^V`#0Bw?8by GzyJUoS%~fc literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/gateway_shadow1.nbt b/data/nullscape/structures/rift/gateway_shadow1.nbt new file mode 100755 index 0000000000000000000000000000000000000000..74073bd258907539113ef6ca174c3ca639d44943 GIT binary patch literal 627 zcmV-(0*w71iwFP!00000|FxJ+tJ6RfhEL`rNqccAq9B4l!=2z-T)7R?cG??ElakEk za$Wg*{F9nWP8-V1dyi-WSrnc*^FBEzP17~eip)@d_nL^#XE~l~Jc|{Tz72J#{Xpkq zMfs-bw%>;J_+hgmed-2Y#D~&khv0&rR>T-BU<_cgiOB>E%EQb&PnKYefU#gNCCJQ- z0(&uo@-Tz)T&}f%$-rJZvR8`9!Cpp?hZ&TI8I*?^l*bD4FoW_igZjk`%FGPPoJaDc z7&K$dpnH%RG-E|%uM~ssL1v!&PRO3Q&T3+iyO|i&i(+C>W}2A!{HO$z2^b|{=6Q62 zF@ic)z~q48ULbd7kUKNTof$1)=3XYjATK5GQW3A)y_6s`GxL7g1cUme1YTO;r6XP` z2K9>>|$UPVIlo{mCi~@O>LGH{LFo(>bd1eN=^Ro%LGlSfjL47YGUMU876;ZD>>2?zg z>5m8hYdn5X`MxAo@95>RZvD1*`|!cHyXr8mcyv#RAHnm+ZBe0E1q@2(Yh-tDS=-TP|W^{%P@yzUc& zudd*5?7DDYZQS6RZ~iePYTB7w& N`VDHY#E5Yb001vPKzaZG literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/gateway_shadow2.nbt b/data/nullscape/structures/rift/gateway_shadow2.nbt new file mode 100755 index 0000000000000000000000000000000000000000..43a724e83e229f9a6984cbd30807fcfb205c0774 GIT binary patch literal 1371 zcmb2|=3oGW|66Y#^b-!0aCm4v_tMPF%!4kE4w)CGKbo~P+UP__?*$>N&WobwAK#nG zzue>{qe;O#|6q@f&bqyG@BRNGrqvUib*aGg|HY}AOTRu}ef#{uU+2}X-d!~R`{%r= z*W`Vr=EmvR*T(h+Yvs)fiPH_g)6u`z=x6I2$KG`x zx95=9E$1U@PS@a8~+}>k$gO2wS={~L77@Y&V0j(wp)x7 zC*4@EXJceSPQAf4dkO1s!)@&|P9$&tERg(M@mQSpcjn(c8;|#GJZ{H3Bl5w%w8m0C zrq?oTXMUBY|J|DQ&U8D+y5#FNw`SaVeeTwc;te3i(OXaA^ow3!X)K*}z-q>wo0D$K z`@CCo`fQTWjLcgz+Rx8@#2L(TMj_!;gCyITxC1>*%eZD(CCqA&WIv+<45&0IgUt<= z95b8^T~C>}Z9HahP2!l;;fQ33Y@X!a#5IOJrdS2dI83mLV-gDXXD+A2Yxd;732WqgzBX^HGq}co z?AJ~HFEHl82z$6ZFlA$l<;$c*z-Ceuvo{i(zJO88$BY@X*qjUW!{_|u$02%tzZ13Y z&o8gfv(F3qxZAJ!XQb7xIr_W&ufKi%FLt|ywdMZ3N4J0bUElr5`8hwkaYf3-?d!Kk zY&oYBC6m7~V{&B4hu4zbpEiG59BcRImFl-GRh_nL2&4{72^Mo0_d|frPh3nwYOxD_55naDLaNkBh@^EqS$S?~7miqW@P% zE`L~9eRHY#ckOk0(@+09eKK=*mi{l68TXpY>T17V_mAKUb-4<)NuF)#oC=G&jO literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/rift/start.nbt b/data/nullscape/structures/rift/start.nbt new file mode 100755 index 0000000000000000000000000000000000000000..6f6de696759d8bf5d281246f81021fe4bd5b2d37 GIT binary patch literal 247 zcmVPQpgG0q|AK#8{>;>S+slrpO>ei8|Ixcb@e?70^+nH)AdA1QQdWQ?cDM;%!RE|eIp=WeN8DfSgWoHi9M(p8&-QQpLQy5r3+%5dtj>{V(z`@~&G-kkean(K xmnxPICHtiqGA|L$D5uyl=~4me*Fyg1tL6CSg^b=gYuQ2jg>Pj93=((&003+ScBlXV literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/1.nbt b/data/nullscape/structures/skeleton/1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..7e3c873faf0bf4cb3e0f5efbce95f7f86e4b4086 GIT binary patch literal 1744 zcmV;>1~2&^iwFP!00000|DD_0Zdyka2H@dfFxZ?nn++Ian}bQ8q1U~xdez&?iKt{X zu_K#{H1E=Pt%v+eN=L*0uhbH96n)HTtvT%3NjHQ}Xudvv-8VuA@$>HOvwZvf)CuSN zr^DmnasL|PPbakAe|-M%*K0R~+CQDp`2758Un;`4pSwmldp$fH_V`B5tQ=8PvB)OE_Rz8A;83*pvb*!Y;)erM{L@lkb+9d(&ev8ajh zF|%=)t;5`lSg5|6VSO(%?McVEIR2fEY26Xix)^6OY7W-LIGa)99L-YXhU&W+m1FfJ zrl-tK#9g(gbhO8eS`$<(%&=IPVX-j7a=yTCm4}U_@2ARHIm%&cuNhC9cOvfb_rhV8 zBA?^$8;7}d7&eAx-iaKGzvm94@>#XV42!85wV$e(nqe{RzkQlX-_vz<@B?N+%n;_v zVOTjMn3=<{x<-z=3P)Xqqpsoy>QeK)8T7srjoNpjQTvYSyP1WfoNI?+eK(`dHmdJt z)H)x{RLsG2UYsiD%3)Y;n7MWswYI1+G^6%PHHMSS_@r$%!}@N9^}TY`RXNI;I?93Kj&MncXbBk)v*iqLwQ`ae@ z&KuE8#r#TRamuK5O!dnQ8^a0A#9^jl4tfpC)v2SL84NqunOTx@<_^<&`?LaIH@Xfp zgsDiIhnaG6IUh|a_6ubuFcXqLlT4daQ^AZ$o2yJ+xwv}`%bytx+uzNo{84pX!Q2qD zaF{keY%e&6Q90HYeIGf>DPT%cPT?qL>@X!vA#&Ag)H$J@MWtm42G?} zW>`$;Ff3QEVOSn69p((V$kyi;jCzh!Ve3y5hUG>JM%~4AgI?#AnZoo*U1r!kox`wkUcuZEvxZ^o>c(N>=OXa+ z&sF3NvsRwQeZ0f?;F0g<irnZsa-;9a zjlRf@3WmjW4$~uTHpAxf70iV=Z}de>H!wHE>|og4yBT)(Zbs$CK#Y$WHa=!l{tQHJ zoWZbjR2zovO%oWlhMQ@Ky8IzkkX?t>ew<>1=(-w0_^=px-D>c`S_ADLd){%#1*gAg)qvl{VY!2ST zT#Gq4O8Rxmuz6aCVX-j7o^u;8=VA^OW1J^qoJTNhjVfT++$kL8Y%+b% z#UdJZFR_JDv6zTh#Br`1<6Mbx?!&NsZ~${g#%Bn_p5KR#a@H^`$2LD;*uNp)I?CB) z#^;n_@jAY<3jaMD=l-4E@jX2mLo@8&*bLhTdob+WYlfYp`Y`PIwC|{E4a4S_8Fmk_ z$&{1J4OPz8(VnfNoO>9S8#@?w2OHmu#xq%;jA0js<&PP*Uvx8drRD;LJr|f^&x2;z zS;7pv>%N3x&qQX}o^pJLANVuAnM)Ciw4B^H&qe-pGj-+0XP%5t>{t8q!^i#Mu#aUl zx}p2q%k$^`OZ+dS=b`!V3jYEwLn0>;I{*Nd_<(Bw literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/2.nbt b/data/nullscape/structures/skeleton/2.nbt new file mode 100644 index 0000000000000000000000000000000000000000..ab3cce9c18b4f2ff777344bb6d12be7dae7253a0 GIT binary patch literal 1836 zcmV+{2h;c;iwFP!00000|DBs%Z(2tXhSvscz6>^S_M8JIHZ~ADs?_^l_qys;Zz~c} z$!cOphKnRWtG}>bI#Wff={v7$31LMKGqdyY?w%#?hR_Mk-NUzSBZQD%KfJttOz)l0 z-ahUh_7B@#NI#u$^8Vw~hd+1S5RU%pgvRHmoqnhc|NIOZp|#s@_FMUc#S8&c33Em; z$X7-9stG$aVQ2F4I(m7Xe8(JROcbUKm{OQN!F(Ujv9WfKsR?Fu__q*RAf7^)Q(z~) zf@wSblQX#;Wl#<)!j3W>5YJSYE?~~(y$RwO%liq4XF@Ph-h04TE$b6bw$F?oM2MT+eDt*PEF5*K{1!YpkAH7g6V@iA2cjrT~!8Y zoia%48p50q%qd`+!l1SHggFMa=o^f+7kIvA29x``B$zqj>kVP&ieQ$)pk7s`1!}P( z?5tj42c41Dgs(N>>##35dF~5?dZQMm58{~;%#2_z4aVA=5`)ghbHdjfg1I7?Yl2w{ zGf{14&%qd`wB_>b94}DKCXz$kbBMtv|za$ux zpQbQq-jzYU(U%w6muJG9IWTF4sV1(XRVbm=y^H429B?mFsOf&LH(l)>iIKaygVo7+{yF6=`m%{y~M3B=s9jF z49atwuVKKmtPIj0Wsv?TgKByv%&}98p;L=Wn6Y#JlNdA?>6M=MJk3lDI;$&#_V=bR z1F)`vFz8vY5@zJo{lf8eA`F@xWzg&>gL+IE)MEo-8U%y#QwTExc9cQ=6NR||GpNi2 zFePE9BrYGDv?~!k~Fq#=CDB5&b;M*8X2i;mmtt&Or{983SfY*qIV` zX2Kx-Q3mzuoly&`rs*ycX_PXaMkNOAUoBzKKG+rpX@W9H6O{4pX%mC)x+lV**->WV z=*Bp!S6+8z3P(3QJCU$c88PQ;zccb<^;n+g+|Io)Xuo(T4B9W0@%D>U4>UWc!XW)o z2F*n&Oaa!eOayi+VNgvg!& zWxRQh0q?mTVUQ*$gEV0z44R8E5zmBR3WACH0<}=4bhOU%RT{o59rNr|gq@nOQxkTk zM7@+j^L}sihNX3f@2(uJON@8^DT#hg4AMhokRB?7=2RK<3^LUI0L;i>tl25EUbSY& zV+w+aMm*NprX=c~7;leD4BF$AK^m2MM?I!6M`uSCK@qY`ka``(Pz(BY520V*RxX*c51>-P1u1u##>>~`R7g; z?|CON==`G$(s^aPJI^{`%^VQSNEnpoF~Lj-CK`-&7OkDN-wT8GL1mDx4y8X(e$ENz zLKsh5JZ4NV6M`uW#=6fu%m&C$Bz%{cKa;OZ-p)x3kYhlni^G+Dl^U9#-6lKtJO3L%xsl}x*NL%Iv z^F|n?KUV~EBMhpAGN=|yVbJ$PD`8O2D}(B#464_Ph-V^sM0=AmXm*sDI=zwmvgXwD zRS>=+v93t?iiEFgVbDFmf?#fhLA{|2>J4R3ZzzNAsBZ~oEez5GWzgM)GDyc#k6k(a zqm0+9S58fpnK`}c#ZwUR6hu6Q5s%fYUObVAClc{QBc9yXtuUxJl=1#A&6U#|%AmWH zRMYE#?^l)a^zb^%q1A`iME`j4C^IGOAYYO2rHrSU-r6G(Ps-0C;4`)|UM&_xEfz#A zym*xHYLWZ0a_IR|#;b+5_GrXo<>!W|#SM|?8)xkW;Y%5m=SbLzM9h(hIjt+{3%Y++ z#>?R?k;B_;?be-x=c_R6SZnvz6$xLFSXU(0mDau_^1KZGp6l6B#@m;dL=HV)k%&1O z@mOnLWxlLlT?MQgg<;3a&x)w27f&SPSvz)=$?cqe-hABd_uKRxNTVCNzdk>G-ae;4 zn{J2Z=F7t_9DNHfzy7lMv<;I_50Bdq&znE?KfQl?-2Q&}i|Sy1>g)gd)EDPdjnMmf av)}x-ecnAhJ-!^{7vXPdXkJ^%pc--k*7 literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/3.nbt b/data/nullscape/structures/skeleton/3.nbt new file mode 100644 index 0000000000000000000000000000000000000000..9acfef7662f03b1e00e1de3f786f6cb5ac0383b3 GIT binary patch literal 1796 zcmV+f2mAORiwFP!00000|DBuLPFq(Hh8JKPV`FUNz4pO2go6o0>J#+3*Hy22TRD*{ zp(YT4FOob{AF^5WpD5j0{^w64Z6zX~=e%ZSFJKVDQRqD1f7u*_5YqD#p7W#7-#l#Z zxA&Xpkp3Kn-rM(&@BVrogs}JbQ8@Vc_-r34!oPny2ci4CU2iw|M2_hZX7=^jbL1Gq z_I!_mJt;mtAs0O%7d;^ty_P+>ID7UO zIz38GCa1^6V)DdkVpxD8wfU_C&#+ zDA;oaW=P~1b1X0;fjMz<+81i0FVsdq_)fiT*#miTC-WOmFiOoxaIRn!t%(=i^f;n|^ zk(e1_uE7k6uGJ4PtbUAP^9 z+=5{>Zw$+qF)Uvx&copEnQf*W!%|=>fvE-N28gg&4rV?UUgJJWc5tum`HZN9SDyM!D zb3)>C2Zr?oV^}>K!|FNx|Hz5qNMNR5ygKxlnZU#h(~jXSn6VS*#IUn$4C`YrdwTfq zuCjKQ#6Oax|{(be|rRPbviFonQGFy8xn+pl*0l!EW2 zU{58;sRTK-Ag31OG+@}>yD==Muff#L{*xGXPK{xEf-!7QFoyN#L)1Nc*Xx5}F*Js~ zHyOirNMqOzc>>1k&uu1m2FFhQ%mk(on3%CA*PjzJA

vYz`X3=Abcb7NmRb)bCgi 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 VULT*I_M?6m{sDb!V@a?*0092zv)ljx literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/5.nbt b/data/nullscape/structures/skeleton/5.nbt new file mode 100644 index 0000000000000000000000000000000000000000..858689064a388c96dd01743c9cfefa2d1cfb7e0b GIT binary patch literal 2270 zcmX9;3sh3s8m_5)Vv?4Ej~u7c+mw0qXiA2y)yr~Br<#OH(IW|(mMKY&MvkTj9Wn2! zR9GsmJ9V`dq%e*;z7-r?<`Jh%v6nqa$P^hvKtl7Lx_j-t*8cys|JV2b`|~KVTJ?3U z)Vvsq+7gDf_{YN4HD~kYeImP-)m4g{FFSX$j}X*uQ@2z48{Dk7osPC;Z_Q;TeJsDd zuse?Bx;4djUwd|);C!}BYB=z|(6FqDdme4&d99nZ6hpj5(MvuXUP?7mjUlwZmh!&S zq?yw+8kez5QrF+vxmVJ9{_yy0BBT~}nb}orpKHojb>_vVKQBdmPGm|3lm|fvgbbvH z61krEdV3HXaUf##N$WZC?-&vF@`zYxEV7f4#f=l zfjb8fQ9Ga#%MtOmyS3VcCfHzNAv4?3d8yEuwkW6d)^>G=VSz{t8v)^H)>e=MaRF55}R zFW>U(C?+^^hKnEk<%#^lVXT#A=#Sv&t4Fa-2b8)? z^P4s$7Z8FZ)x#p)-U3Jw49-r}OU@wi=QC#O0ine(TBtI%lBoNR`k357R&4Q)^iUOW zs3`or=37*X@I=um8?nn!a>8N2=l43=vwX-Ha+3RSQ2h9`F%T(oQ&_;UmO+wWy5y=H z^m1390cx$iRE(*23|m-p6cG`N@!C(DO0O*cD(k2$hV@Qh>apQ0WBsYuX7sv3mF29* z4;POH{WhQdLqJNsca}KZGn!Xiu7b89bgPpNV7_%^S}~2yo%iO(CU{A%dhHk9zclL& zkRlsPV0~@VKj~fSxvIzMCv+zO@ye4tEja9E1M9^^T+2v+)Uewfr+pf)c~Xe4(9w4H zZv=#4n|P+XDaX$xOc@+9U!%Y|LT-&|Sp$?r*-&Mn%a>l!`s?GvvL_92_Yj<#+cul;P_+5i0Lg9RN zR)CNlx3(uT&Pv>kRV^)Cj9t`r9heKLOzI4EDplP14a$U6$TT%s7*iHLFsQdnt3H9N zceo*Nl1D9DD@8gmZ~g-@a60|iI`BGVzE=py9pJJ1JX?QxI8MFj$Z4gQz+&ZSOK0HB{PuPe&^2UujI_001h_v5C1G62EsE`{dY(;-&R4{u!yCg_X zl9-BX|MVa-(Mb+NCykPZx9n-<)U^K#6lbuula|#zuJ?m<(C-NThw_ zf*K#_<3MB&P^lLukw^Ao5eJlawsR`kmisqntI)tMs66`0DL4g!r=onp$hnTKY1Q5F zHhriUqvZaeMoa{MA$SgiVr9u|!2-x!umRIC;9;%gtZT}L2uvH42O|JyK)5T^QD(A$ zHTKj7+03Y9a4boce_RIT{Ib93l$F@VGuoOFE-yp5>|TNCr!W2BsD1=?M*H-;Scxt6 z3lHPyR?05L@5@$tL0=%sZZ&+}4uLty4d(=_D} z@Gv-4PMgRnF9&M#fLaTf<(v$6MLo9C`AKiEtfZ5pA@F=g=G?mx0;f{I@FaDS{YXmI z&YT-Bug`yGe(Pc|wyi_@2gOMfS1!;Z2ixuACvpy=4iDO4a)P9o5GFXg*S=6kg;`~} z7^z{EE3QJI1}G?U|HbZ5O&otc5^qLfN)OB1S2ANOw!yVH6=DV0gmOtRZGxDIa@+IP zgVIUw`~JG0Xk7y_GuE^^ zdAd)HDW)%Lp!u>Ka-)|QkFj!f&kb)N*T$6x*WRxzzL{G#99Z)0Hykjl%AT7=I<*r1 zb6Gm9eGZtG4KEEEc2(Tw?i_~kqFFb(vdigXk6y9z>A}A0SLX}gnyc7VwJjcVY1&C* SOKIk!Yc_-&-f(Qys{aAJ+kyfB literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/6.nbt b/data/nullscape/structures/skeleton/6.nbt new file mode 100644 index 0000000000000000000000000000000000000000..7544e103da90690a682616fa8e945e9b243e0e77 GIT binary patch literal 2219 zcmYjSdo)!09@lO4P#Za#>@mfv7Ebp_n=w+t?ReDb4z8<^$6*^OkE6>p${nLRSKGwQ zDM}3)P87pnrWmcscy8e^OpI5WMjfwchO5bIyzcI-b=JDS-{<@9_xbsLzGfNQb^dr8 zT*djz2itI4-al}=9aAM16!I96svN7DO`DUtsdq~xTc0=Se6Q*Wd$O&q!P#mwnDYAD zd}_qzRGm@Z!;8wY%D9?h-`(oMxz(jlGf%!v|FWF2k<_rEsLmLe8STXWjQI41D5J_O z<=@)51{t@|L0O$~&)Zuz_jmslS!j6q+X6a8jVBQ8H!bDbGblNdGD><$10F8tn}5`(suk zNPCd}A-xnYfQS>74U4b4I}*c{?Np}=hN?m>~7?rN)0YS!aKynRa<$M&19odd9u<76f z`3s1U=}XEtXuZ}fJicmwPvDAF2xivhR!cPDL!0^G?Pz5-JXG&v!pP34*T>gbYdstp zMcfW1oIS;lD~5b~2c=LDD6-BiY;|rF(&qL7L9?Z;fm<4`Zb!Rg;h`iFt87wxEnz-* z_S0P-(#T)0bn%x`;ftfaATR2kjJ(9T^2^8FtFai*2*`ZD4cQoRD$zsp>(YEy;8T6kpvWxItpb6mvlm*i zn8d7UzO?1o3rilBbi961ci_B(nMu|07;|)niY6!d$+*|2u|y`qz5k&pv(u+jlz^jRO|szqVm3VR zgu5Sji=IO8s8E{&Ms7kEQlZ${kosofJT5-s;_W>^?M5^zOs0kTg)OvBr~5T@5Uf$&c|CGN z>eSlOUDz;t5`k$$sqo;UKJduj*hBrH<32KVksMdxjZ};q0zsXp+Uq(7h3_XPw*vGw zE1=dps#!>%wkN}!gYjz9^rbIwU!a#q#mNf@ax7hvp3G(?o1;nsAU9X%H47I(6tf_x z4Z%VrS~!bEC%(aUBY%8>mDpVVD*soq3nhX6y{&4cxZ`8YALXCrQ+)V(pdST3Xv=lHV$2 zPBmGz96wk5GmPoLz*OVM@3;je;Xmqu*@Du{Khf?lv+ux0~m*8Oh~C;ubF(PI&PSN}%zA;3d{rg*9WI*~tp zF|JRh;1!5@Y$B(a$Br;*sm9dgKBSVEc&K$XfnEmq8o`2|Zkp}FRRoSH-dkJF3jPYW zyho5#=ua3utXUne&Ws(vv}Y1hUGB0+#E^7=`2hzwx|GNQ$G!j_A=JSGvz}nKT$K40 z5kpr$bxI`(BgWb@a&9N*bt+mhn`=ZliFKSqxFayWz9Rm9MT1LuL5__EIom&S&&ZqcG{I%?Q&b z4Q9-T4M{va9I+cRab@5ojxy84n^UCE1vm00`Bw`CHUNEV!X{LEMy(*I6@%fN+KGBY zb!^zs{HMPl^E9}+ibM{aotl06#;Ip3qRt6IpDam?7@h!;M4tX`?d>iV+3_YO>Qgrp za|=vUhU+A%-j~Owc5|<%q-d*G^44{q`Sn~|8lMw8XlV^ir1iP~YAQLat4r~VqmyYH zl2vtD$(`Ek8w-LA-13Na++b~BqvbMp_qzrc$%)mN#pUI>snL2jLHfq#D(~JrLr)!@ F{{iBMkdOcX literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/7.nbt b/data/nullscape/structures/skeleton/7.nbt new file mode 100644 index 0000000000000000000000000000000000000000..3f9206dabe9662f319602b4365f40c75bee2b511 GIT binary patch literal 2279 zcmXX`c~p|=9&VYIDI~MZPsC|)Y+oQG7c!fyXfbV>@Kdz>;JRWP1ZAeS;{G{JrD&q3 zv9w|lCbfvPaX!RKgR6uPx!kg}1mu>1sfCxC`=0Zh=e&Qszw`c{-|u>JyXYDLND--1>C)BN9J9#5P+UFseDy75ExtkjRoaRE)? zO@Q<1k>}dLXl>VBeZ+Lp?zEK84>zC|D$3{A1>JjDE~g}j=ljmOmTBFYl@WQ}KKNB* z$!Pf3!e3R?SO4wR_;+5?%Xq_z8E8Q$H?wJhBl?0f|hL0qXXnHLVv; zNsnVRe#*n<#%&y^Kl3DSea+}T(`?4JkeAQ{7z`wrr@|nua%=SS-%p3`n$Hz^uz*63 zod5@Za6!r>mgHO#P=vfp>tDlHP>WeW7|E1eN}|1mL75k2qGrL+>dGx*h>DMl2Ga)p z4DU^Cq3T<|2>9X(ei`x!>Qf$Ye&%1C>z=p&Als{dO^k3fM|o$>3QFfpjIuQ6Np_;Y zA#s`ch7QN7xl9U~sPP$CM2r+iR?0JAD1W0yPP zM630b8ep&)m+a(*Fb|-pgk~I(wivg+V)fn%?UuMV11^p>yj#!iaia(=*xow}++N(( z1msyyd(GlRziAZbuGh0KDchMF@@rc_Hq?~#y<`B)&>vF_ES1(6vbkDawwEs#O*mIP zo50~^Bc*>!N`u%ntiFW!8LZ%rLVuJ%Bdg$h=hYtGjCABv9hwCwf9ff29+j$w+9bnn z?x>a&d~%mF!rTx}OB_ozz;%Z~^IVu?fRC}Ux~jWmQb&oilUyCRC$DZX827U-OA)}T zAzYLW_>?eQ7?pszc)t&&zQ}Ss|J1$FyJsNwsfl#0T&wckQLbSCzg3&Mq=0P@M2+=r z{)W~wyvcyA`_3e!+ijajm7Tb}x4q-mNBNLXujuthF7Y zC`Y5xA8k^4_dV6m{6pH&|55JS>%MJd*NqP-#hq#@Sy=5!58Bx9r*$`KtReI}1pDyG zCYs*Y-xaX!f&p9C#eaZ)Fom_bZ_#2nhgRY3Go(*uO zK8_LAuEsD#xypdyN@)$@kU_PY&QBE`bA>nLN;@7LmZ<9!GdS+X=nO-=+2f8+Mh)wT zPxUrZGn#N*;es&PKOo(tyl?+0OXDM;G0dl9^s*{7Nqm*l{zbNLv_cg0f$vMrKtuX^ z8NlgwMpPa&eM&G&kh>fuh{c;qmvQ+72JRnjlCa{Y(nZB>U_X)|v^X-*fQfBdj&)ez zm=zLQmy}SMPSbFv;_jFNj<8mh6#ov;`8#s75SM&NHho;gKOS0rg|l}^2`%RljMT3U zm*_O%>A@xbm1YY?*x45PDxvD=C)rWOK%->roEN}JpT~NOGo^fXj@zNEJp-lOzuJOSe;b4xRS*bwE#2B8J!z*~rY*r$-Qa5iQP(sC-j9j#4>BQLio?l2(#?ktZ!SaKd?I!GF}HLRZc+N;Vg*p*@gRT3s$%Ewx_vaLCMAttWKXmMhSkw zcgTD(l=G_q%6a$iSC%yabjpEN&W$C(a;y_k!t~PuQS6c*7 z4mzG4q=9LxV)Vqk-T-zKauOY5=qMR)DlgD<|Qh{x$E>7)14;c?dp z!mpN~z=s#kKdO5a^>xIK1Yk2xo{So|pB``SYd#THVC;E1eskr!N7nZlUpwM^@1cY3 dny-C!opq=M(e$oMD|~h2)DO3a5xXW#_#ghEkt+ZI literal 0 HcmV?d00001 diff --git a/data/nullscape/structures/skeleton/8.nbt b/data/nullscape/structures/skeleton/8.nbt new file mode 100644 index 0000000000000000000000000000000000000000..b49af9d2d94b74742b5bb03268cdcffdd752013e GIT binary patch literal 2237 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 O$mbN&&KZW_r~d&pUUs7Z literal 0 HcmV?d00001 diff --git a/data/nullscape/worldgen/density_function/void/ring1_offset.json b/data/nullscape/worldgen/density_function/void/ring1_offset.json new file mode 100755 index 0000000..8cbfb67 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring1_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring1", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring1", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring1_sync.json b/data/nullscape/worldgen/density_function/void/ring1_sync.json new file mode 100755 index 0000000..2925cca --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring1_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring1_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/ring2_offset.json b/data/nullscape/worldgen/density_function/void/ring2_offset.json new file mode 100755 index 0000000..9c28af2 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring2_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring2", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring2", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring2_sync.json b/data/nullscape/worldgen/density_function/void/ring2_sync.json new file mode 100755 index 0000000..9e06438 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring2_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring2_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/ring3_offset.json b/data/nullscape/worldgen/density_function/void/ring3_offset.json new file mode 100755 index 0000000..c6dcee6 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring3_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring3", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring3", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring3_sync.json b/data/nullscape/worldgen/density_function/void/ring3_sync.json new file mode 100755 index 0000000..897e3fc --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring3_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring3_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/ring4_offset.json b/data/nullscape/worldgen/density_function/void/ring4_offset.json new file mode 100755 index 0000000..b58cbd3 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring4_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring4", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring4", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring4_sync.json b/data/nullscape/worldgen/density_function/void/ring4_sync.json new file mode 100755 index 0000000..05f5a50 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring4_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring4_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/ring5_offset.json b/data/nullscape/worldgen/density_function/void/ring5_offset.json new file mode 100755 index 0000000..b0e5ca6 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring5_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring5", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring5", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring5_sync.json b/data/nullscape/worldgen/density_function/void/ring5_sync.json new file mode 100755 index 0000000..beee810 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring5_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring5_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/ring6_offset.json b/data/nullscape/worldgen/density_function/void/ring6_offset.json new file mode 100755 index 0000000..cbc96f4 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring6_offset.json @@ -0,0 +1,22 @@ +{ + "type":"flat_cache", + "argument":{ + "type":"add", + "argument1": { + "type": "minecraft:noise", + "noise": "nullscape:void/ring6", + "xz_scale": 0.75, + "y_scale": 0.0 + }, + "argument2":{ + "type":"mul", + "argument2":-1, + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring6", + "xz_scale": 0.72, + "y_scale": 0.0 + } + } +} +} \ No newline at end of file diff --git a/data/nullscape/worldgen/density_function/void/ring6_sync.json b/data/nullscape/worldgen/density_function/void/ring6_sync.json new file mode 100755 index 0000000..5abb301 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/ring6_sync.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:spline", + "spline": { + "coordinate": "nullscape:void/ring6_offset", + "points": [ + { + "location": -0.025, + "derivative": 0, + "value": 64 + }, + { + "location": -0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": -0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0, + "derivative": 0, + "value": -1 + }, + { + "location": 0.01, + "derivative": 0, + "value": 0 + }, + { + "location": 0.0125, + "derivative": 0, + "value": 1 + }, + { + "location": 0.025, + "derivative": 0, + "value": 64 + } + ] + } +} diff --git a/data/nullscape/worldgen/density_function/void/void_gauntlet.json b/data/nullscape/worldgen/density_function/void/void_gauntlet.json new file mode 100755 index 0000000..5f800a3 --- /dev/null +++ b/data/nullscape/worldgen/density_function/void/void_gauntlet.json @@ -0,0 +1,39 @@ +{ + "type":"add", + "argument1":{ + "type": "minecraft:mul", + "argument1": 0.166666666666666666, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": "nullscape:void/ring1_sync", + "argument2":{ + "type": "minecraft:add", + "argument1": "nullscape:void/ring2_sync", + "argument2": "nullscape:void/ring3_sync" + } + }, + "argument2": { + "type": "minecraft:add", + "argument1": "nullscape:void/ring4_sync", + "argument2": { + "type": "minecraft:add", + "argument1": "nullscape:void/ring5_sync", + "argument2": "nullscape:void/ring6_sync" + } + } + } +}, +"argument2":{ + "type":"mul", + "argument1":{ + "type": "minecraft:noise", + "noise": "nullscape:void/ring1", + "xz_scale": 16.0, + "y_scale": 64.0 + }, + "argument2":0.05 + +} +} diff --git a/data/nullscape/worldgen/dragon_skeleton_boneyard.json b/data/nullscape/worldgen/dragon_skeleton_boneyard.json new file mode 100755 index 0000000..a59756d --- /dev/null +++ b/data/nullscape/worldgen/dragon_skeleton_boneyard.json @@ -0,0 +1,17 @@ +{ + "structures": [ + { + "structure": "nullscape:dragon_skeleton", + "weight": 1 + } + ], + "placement": { + "type": "minecraft:random_spread", + "salt": 461798080, + "frequency_reduction_method": "default", + "frequency": 0.6, + "spread_type": "linear", + "spacing": 30, + "separation": 7 + } +} diff --git a/data/nullscape/worldgen/noise/crystal/surface.json b/data/nullscape/worldgen/noise/crystal/surface.json new file mode 100755 index 0000000..3e435b5 --- /dev/null +++ b/data/nullscape/worldgen/noise/crystal/surface.json @@ -0,0 +1,11 @@ +{ + "firstOctave": -6, + "amplitudes": [ + 1, + 0.75, + 1.5, + 1.85, + 2.75, + 4 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring1.json b/data/nullscape/worldgen/noise/island/ring1.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring1.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring2.json b/data/nullscape/worldgen/noise/island/ring2.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring2.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring3.json b/data/nullscape/worldgen/noise/island/ring3.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring3.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring4.json b/data/nullscape/worldgen/noise/island/ring4.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring4.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring5.json b/data/nullscape/worldgen/noise/island/ring5.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring5.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/ring6.json b/data/nullscape/worldgen/noise/island/ring6.json new file mode 100755 index 0000000..9b28636 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/ring6.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/island/shift_x.json b/data/nullscape/worldgen/noise/island/shift_x.json new file mode 100755 index 0000000..8ef2834 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/shift_x.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/island/shift_y.json b/data/nullscape/worldgen/noise/island/shift_y.json new file mode 100755 index 0000000..8ef2834 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/shift_y.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/island/shift_z.json b/data/nullscape/worldgen/noise/island/shift_z.json new file mode 100755 index 0000000..8ef2834 --- /dev/null +++ b/data/nullscape/worldgen/noise/island/shift_z.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/brittleness/crack.json b/data/nullscape/worldgen/noise/material/effect/brittleness/crack.json new file mode 100755 index 0000000..83a8ce5 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/brittleness/crack.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1.0, + 0.75, + 1.5, + 2.125 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/brittleness/crack2.json b/data/nullscape/worldgen/noise/material/effect/brittleness/crack2.json new file mode 100755 index 0000000..9f33dbc --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/brittleness/crack2.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 0.1, + 0.05, + 0.0125, + 0.05 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/bubble_large.json b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_large.json new file mode 100755 index 0000000..02bda87 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_large.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -6, + "amplitudes": [ + 1.0, + 0.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/bubble_medium.json b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_medium.json new file mode 100755 index 0000000..8bb93e3 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_medium.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1.0, + 0.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/bubble_small.json b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_small.json new file mode 100755 index 0000000..7697f81 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/bubble_small.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -4, + "amplitudes": [ + 1.0, + 0.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/distortion_x.json b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_x.json new file mode 100755 index 0000000..40a6915 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_x.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 0.75, + 0.5 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/distortion_y.json b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_y.json new file mode 100755 index 0000000..40a6915 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_y.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 0.75, + 0.5 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/porosity/distortion_z.json b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_z.json new file mode 100755 index 0000000..40a6915 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/porosity/distortion_z.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 0.75, + 0.5 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/sharpness/point.json b/data/nullscape/worldgen/noise/material/effect/sharpness/point.json new file mode 100755 index 0000000..e8d031c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/sharpness/point.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.4, + 0.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/sharpness/x.json b/data/nullscape/worldgen/noise/material/effect/sharpness/x.json new file mode 100755 index 0000000..134ffa8 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/sharpness/x.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/sharpness/y.json b/data/nullscape/worldgen/noise/material/effect/sharpness/y.json new file mode 100755 index 0000000..134ffa8 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/sharpness/y.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/material/effect/sharpness/z.json b/data/nullscape/worldgen/noise/material/effect/sharpness/z.json new file mode 100755 index 0000000..134ffa8 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/effect/sharpness/z.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.0 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/brittleness.json b/data/nullscape/worldgen/noise/material/property/brittleness.json new file mode 100755 index 0000000..7d6f263 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/brittleness.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/density.json b/data/nullscape/worldgen/noise/material/property/density.json new file mode 100755 index 0000000..e945cbb --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/density.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 0.445, + 0.275 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/elasticity.json b/data/nullscape/worldgen/noise/material/property/elasticity.json new file mode 100755 index 0000000..28656ef --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/elasticity.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1.7 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/hardness.json b/data/nullscape/worldgen/noise/material/property/hardness.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/hardness.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/malleability.json b/data/nullscape/worldgen/noise/material/property/malleability.json new file mode 100755 index 0000000..2609131 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/malleability.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 3.95, + 1.75 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/porosity.json b/data/nullscape/worldgen/noise/material/property/porosity.json new file mode 100755 index 0000000..ed8558f --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/porosity.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1.0, + 1.6 + ] +} diff --git a/data/nullscape/worldgen/noise/material/property/sharpness.json b/data/nullscape/worldgen/noise/material/property/sharpness.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/property/sharpness.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/elasticity/differential.json b/data/nullscape/worldgen/noise/material/sub_property/elasticity/differential.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/elasticity/differential.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/elasticity/scaling_modulator.json b/data/nullscape/worldgen/noise/material/sub_property/elasticity/scaling_modulator.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/elasticity/scaling_modulator.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/elasticity/x_strength.json b/data/nullscape/worldgen/noise/material/sub_property/elasticity/x_strength.json new file mode 100755 index 0000000..d2d6501 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/elasticity/x_strength.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.3125 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/elasticity/y_strength.json b/data/nullscape/worldgen/noise/material/sub_property/elasticity/y_strength.json new file mode 100755 index 0000000..d2d6501 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/elasticity/y_strength.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.3125 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/elasticity/z_strength.json b/data/nullscape/worldgen/noise/material/sub_property/elasticity/z_strength.json new file mode 100755 index 0000000..d2d6501 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/elasticity/z_strength.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -11, + "amplitudes": [ + 1.3125 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/malleability/x_variance.json b/data/nullscape/worldgen/noise/material/sub_property/malleability/x_variance.json new file mode 100755 index 0000000..5fe2af8 --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/malleability/x_variance.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -10, + "amplitudes": [ + 1.25, + 0.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/porosity/distortion.json b/data/nullscape/worldgen/noise/material/sub_property/porosity/distortion.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/porosity/distortion.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_large.json b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_large.json new file mode 100755 index 0000000..b0fbb9c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_large.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 0.7, + 1.875 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_medium.json b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_medium.json new file mode 100755 index 0000000..b0fbb9c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_medium.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 0.7, + 1.875 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_small.json b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_small.json new file mode 100755 index 0000000..b0fbb9c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/porosity/influence_small.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 0.7, + 1.875 + ] +} diff --git a/data/nullscape/worldgen/noise/material/sub_property/porosity/inversion.json b/data/nullscape/worldgen/noise/material/sub_property/porosity/inversion.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/material/sub_property/porosity/inversion.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/math/base_3d_old.txt b/data/nullscape/worldgen/noise/math/base_3d_old.txt new file mode 100644 index 0000000..6eef146 --- /dev/null +++ b/data/nullscape/worldgen/noise/math/base_3d_old.txt @@ -0,0 +1,49 @@ +{ + "type": "minecraft:add", + "argument1": "nullscape:density/density", + "argument2": { + "type": "minecraft:shifted_noise", + "noise": "nullscape:math/base_terrain", + "xz_scale": 0.5, + "y_scale": 0.675, + "shift_x": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:mul", + "argument1": "nullscape:elasticity/global", + "argument2": "nullscape:elasticity/x" + }, + "argument2": { + "type": "minecraft:noise", + "noise": "nullscape:math/shift_x", + "xz_scale": 0.167, + "y_scale": 0.5 + } + }, + "shift_y": { + "type": "minecraft:mul", + "argument1": "nullscape:malleability/flatness", + "argument2": { + "type": "minecraft:y_clamped_gradient", + "from_y": 0, + "to_y": 384, + "from_value": 0, + "to_value": 185 + } + }, + "shift_z": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:mul", + "argument1": "nullscape:elasticity/global", + "argument2": "nullscape:elasticity/z" + }, + "argument2": { + "type": "minecraft:noise", + "noise": "nullscape:math/shift_z", + "xz_scale": 0.167, + "y_scale": 0.5 + } + } + } +} diff --git a/data/nullscape/worldgen/noise/math/base_terrain.json b/data/nullscape/worldgen/noise/math/base_terrain.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/math/base_terrain.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/math/shift_x.json b/data/nullscape/worldgen/noise/math/shift_x.json new file mode 100755 index 0000000..35770ed --- /dev/null +++ b/data/nullscape/worldgen/noise/math/shift_x.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0, +0.5, +0, +2.0 + ] +} diff --git a/data/nullscape/worldgen/noise/math/shift_y.json b/data/nullscape/worldgen/noise/math/shift_y.json new file mode 100755 index 0000000..35770ed --- /dev/null +++ b/data/nullscape/worldgen/noise/math/shift_y.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0, +0.5, +0, +2.0 + ] +} diff --git a/data/nullscape/worldgen/noise/math/shift_z.json b/data/nullscape/worldgen/noise/math/shift_z.json new file mode 100755 index 0000000..35770ed --- /dev/null +++ b/data/nullscape/worldgen/noise/math/shift_z.json @@ -0,0 +1,9 @@ +{ + "firstOctave": -8, + "amplitudes": [ + 1.0, +0.5, +0, +2.0 + ] +} diff --git a/data/nullscape/worldgen/noise/math/terrain_default.json b/data/nullscape/worldgen/noise/math/terrain_default.json new file mode 100644 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/math/terrain_default.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/shadowlands/brain.json b/data/nullscape/worldgen/noise/shadowlands/brain.json new file mode 100755 index 0000000..2387aa1 --- /dev/null +++ b/data/nullscape/worldgen/noise/shadowlands/brain.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1, + 1, + 1, + 1, + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/shadowlands/bubble.json b/data/nullscape/worldgen/noise/shadowlands/bubble.json new file mode 100755 index 0000000..5725e5c --- /dev/null +++ b/data/nullscape/worldgen/noise/shadowlands/bubble.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1, + 1.75, + 2.5, + 3.25, + 4 + ] +} diff --git a/data/nullscape/worldgen/noise/shadowlands/fire.json b/data/nullscape/worldgen/noise/shadowlands/fire.json new file mode 100755 index 0000000..4532593 --- /dev/null +++ b/data/nullscape/worldgen/noise/shadowlands/fire.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1, + 0.5, + 2, + 4, + 6 + ] +} diff --git a/data/nullscape/worldgen/noise/shadowlands/horn.json b/data/nullscape/worldgen/noise/shadowlands/horn.json new file mode 100755 index 0000000..2387aa1 --- /dev/null +++ b/data/nullscape/worldgen/noise/shadowlands/horn.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1, + 1, + 1, + 1, + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/shadowlands/tube.json b/data/nullscape/worldgen/noise/shadowlands/tube.json new file mode 100755 index 0000000..e968ae3 --- /dev/null +++ b/data/nullscape/worldgen/noise/shadowlands/tube.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -5, + "amplitudes": [ + 1, + 1.25, + 1.5, + 1.75, + 2 + ] +} diff --git a/data/nullscape/worldgen/noise/terrain/base_terrain.json b/data/nullscape/worldgen/noise/terrain/base_terrain.json new file mode 100755 index 0000000..5ae9b7c --- /dev/null +++ b/data/nullscape/worldgen/noise/terrain/base_terrain.json @@ -0,0 +1,8 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 1.0, + 1.5, + 1.25 + ] +} diff --git a/data/nullscape/worldgen/noise/terrain/continentalness.json b/data/nullscape/worldgen/noise/terrain/continentalness.json new file mode 100755 index 0000000..28c6d10 --- /dev/null +++ b/data/nullscape/worldgen/noise/terrain/continentalness.json @@ -0,0 +1,10 @@ +{ + "firstOctave": -9, + "amplitudes": [ + 1.125, + 1.125, + 2.25, + 3.0, + 1.0 + ] +} \ No newline at end of file diff --git a/data/nullscape/worldgen/noise/terrain/temperature.json b/data/nullscape/worldgen/noise/terrain/temperature.json new file mode 100755 index 0000000..81b775e --- /dev/null +++ b/data/nullscape/worldgen/noise/terrain/temperature.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.5, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -11 +} \ No newline at end of file diff --git a/data/nullscape/worldgen/noise/terrain/vegetation.json b/data/nullscape/worldgen/noise/terrain/vegetation.json new file mode 100755 index 0000000..1f4daef --- /dev/null +++ b/data/nullscape/worldgen/noise/terrain/vegetation.json @@ -0,0 +1,11 @@ +{ + "amplitudes": [ + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "firstOctave": -10 +} \ No newline at end of file diff --git a/data/nullscape/worldgen/noise/void/ring1.json b/data/nullscape/worldgen/noise/void/ring1.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring1.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/void/ring2.json b/data/nullscape/worldgen/noise/void/ring2.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring2.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/void/ring3.json b/data/nullscape/worldgen/noise/void/ring3.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring3.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/void/ring4.json b/data/nullscape/worldgen/noise/void/ring4.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring4.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/void/ring5.json b/data/nullscape/worldgen/noise/void/ring5.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring5.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/noise/void/ring6.json b/data/nullscape/worldgen/noise/void/ring6.json new file mode 100755 index 0000000..65b596b --- /dev/null +++ b/data/nullscape/worldgen/noise/void/ring6.json @@ -0,0 +1,6 @@ +{ + "firstOctave": -12, + "amplitudes": [ + 1 + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/amethyst.json b/data/nullscape/worldgen/obsolete_feature/crystal/amethyst.json new file mode 100755 index 0000000..603c218 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/amethyst.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/amethyst", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 75, + "noise_offset": -0.8 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -120, + "noise_factor": 75, + "noise_offset": -1 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/blackstone.json b/data/nullscape/worldgen/obsolete_feature/crystal/blackstone.json new file mode 100755 index 0000000..aa6d156 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/blackstone.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/blackstone", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 75, + "noise_offset": 1 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -5, + "noise_factor": 75, + "noise_offset": -0.05 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 10 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/crying.json b/data/nullscape/worldgen/obsolete_feature/crystal/crying.json new file mode 100755 index 0000000..12629b7 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/crying.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/crying", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 75, + "noise_offset": -0.65 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -65, + "noise_factor": 75, + "noise_offset": -0.8 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/half_crying.json b/data/nullscape/worldgen/obsolete_feature/crystal/half_crying.json new file mode 100755 index 0000000..9cfb243 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/half_crying.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/half_crying", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 75, + "noise_offset": -0.4 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -40, + "noise_factor": 75, + "noise_offset": -0.65 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/inverse/amethyst.json b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/amethyst.json new file mode 100755 index 0000000..a02ed91 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/amethyst.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/inverse/amethyst", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": -0.8 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -100, + "noise_factor": 76, + "noise_offset": -1 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/inverse/blackstone.json b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/blackstone.json new file mode 100755 index 0000000..5e5463c --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/blackstone.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/inverse/blackstone", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": 1 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -10, + "noise_factor": 76, + "noise_offset": -0.05 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 20 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/inverse/crying.json b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/crying.json new file mode 100755 index 0000000..767c386 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/crying.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/inverse/crying", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": -0.65 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -65, + "noise_factor": 76, + "noise_offset": -0.8 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/inverse/half_crying.json b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/half_crying.json new file mode 100755 index 0000000..6961f26 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/half_crying.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/inverse/half_crying", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": -0.4 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -40, + "noise_factor": 76, + "noise_offset": -0.65 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/inverse/obsidian.json b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/obsidian.json new file mode 100755 index 0000000..9082575 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/inverse/obsidian.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/inverse/obsidian", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": -0.05 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -25, + "noise_factor": 76, + "noise_offset": -0.4 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/light_down.json b/data/nullscape/worldgen/obsolete_feature/crystal/light_down.json new file mode 100755 index 0000000..9b5c62b --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/light_down.json @@ -0,0 +1,84 @@ +{ + "feature": "nullscape:crystal/light_down", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 221.728, + "noise_offset": 0.5 + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + } + ] + } + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/light_up.json b/data/nullscape/worldgen/obsolete_feature/crystal/light_up.json new file mode 100755 index 0000000..4d6dadd --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/light_up.json @@ -0,0 +1,84 @@ +{ + "feature": "nullscape:crystal/light_up", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 221.727, + "noise_offset": 0.5 + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:air" + ] + } + ] + } + } + ] +} diff --git a/data/nullscape/worldgen/obsolete_feature/crystal/obsidian.json b/data/nullscape/worldgen/obsolete_feature/crystal/obsidian.json new file mode 100755 index 0000000..5a14927 --- /dev/null +++ b/data/nullscape/worldgen/obsolete_feature/crystal/obsidian.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:crystal/obsidian", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 75, + "noise_offset": -0.05 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -25, + "noise_factor": 75, + "noise_offset": -0.4 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 25 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/asteroid_carver.json b/data/nullscape/worldgen/placed_feature/asteroid_carver.json new file mode 100755 index 0000000..b449892 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/asteroid_carver.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:asteroid_carver", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/bone_tree.json b/data/nullscape/worldgen/placed_feature/boneyard/bone_tree.json new file mode 100755 index 0000000..6577691 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/bone_tree.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:boneyard/bone_tree", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/fire.json b/data/nullscape/worldgen/placed_feature/boneyard/fire.json new file mode 100755 index 0000000..0e806fd --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/fire.json @@ -0,0 +1,44 @@ +{ + "feature": "nullscape:boneyard/fire", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 13, + "max_inclusive": 32 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/pillar_1.json b/data/nullscape/worldgen/placed_feature/boneyard/pillar_1.json new file mode 100755 index 0000000..1ec4bb2 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/pillar_1.json @@ -0,0 +1,29 @@ +{ + "feature": "nullscape:boneyard/pillar_1", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 10, + "max_inclusive": 20 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/pillar_2.json b/data/nullscape/worldgen/placed_feature/boneyard/pillar_2.json new file mode 100755 index 0000000..b334634 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/pillar_2.json @@ -0,0 +1,33 @@ +{ + "feature": "nullscape:boneyard/pillar_2", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 20, + "max_inclusive": 40 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "count", + "count": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/pillar_3.json b/data/nullscape/worldgen/placed_feature/boneyard/pillar_3.json new file mode 100755 index 0000000..dbccf4b --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/pillar_3.json @@ -0,0 +1,33 @@ +{ + "feature": "nullscape:boneyard/pillar_3", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 15, + "max_inclusive": 30 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "count", + "count": 64 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/pillar_4.json b/data/nullscape/worldgen/placed_feature/boneyard/pillar_4.json new file mode 100755 index 0000000..b7eaad0 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/pillar_4.json @@ -0,0 +1,33 @@ +{ + "feature": "nullscape:boneyard/pillar_4", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 15, + "max_inclusive": 40 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "count", + "count": 64 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/pillars.json b/data/nullscape/worldgen/placed_feature/boneyard/pillars.json new file mode 100755 index 0000000..fec17c2 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/pillars.json @@ -0,0 +1,24 @@ +{ + "feature": "nullscape:boneyard/pillars", + "placement": [ + { + "type": "count", + "count": 1 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt.json b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt.json new file mode 100755 index 0000000..433b865 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt.json @@ -0,0 +1,60 @@ +{ + "feature": "nullscape:boneyard/smooth_basalt", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 25, + "noise_offset": 0.15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 25, + "noise_offset": -0.15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 107, + "noise_offset": 0 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_dx.json b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_dx.json new file mode 100755 index 0000000..7b44c8f --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_dx.json @@ -0,0 +1,60 @@ +{ + "feature": "nullscape:boneyard/smooth_basalt_dx", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 25, + "noise_offset": 0.3 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 25, + "noise_offset": -0.3 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 107, + "noise_offset": -0.5 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_more.json b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_more.json new file mode 100755 index 0000000..84dc65b --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/smooth_basalt_more.json @@ -0,0 +1,60 @@ +{ + "feature": "nullscape:boneyard/smooth_basalt_more", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 25, + "noise_offset": 0.325 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 25, + "noise_offset": -0.15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 107, + "noise_offset": -0.25 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/boneyard/soul_sand.json b/data/nullscape/worldgen/placed_feature/boneyard/soul_sand.json new file mode 100755 index 0000000..ee5466f --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/boneyard/soul_sand.json @@ -0,0 +1,60 @@ +{ + "feature": "nullscape:boneyard/soul_sand", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 25, + "noise_offset": 0.03 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 25, + "noise_offset": -0.03 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 107, + "noise_offset": 0.25 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/chorus_light.json b/data/nullscape/worldgen/placed_feature/chorus_light.json new file mode 100755 index 0000000..227ff27 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/chorus_light.json @@ -0,0 +1,22 @@ +{ + "feature": "nullscape:chorus_light", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 8 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 10, + "noise_factor": 175, + "noise_offset": 0 + }, + { + "type": "minecraft:rarity_filter", + "chance": 80 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/chorus_plant.json b/data/nullscape/worldgen/placed_feature/chorus_plant.json new file mode 100755 index 0000000..dadd85c --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/chorus_plant.json @@ -0,0 +1,12 @@ +{ + "feature": "nullscape:chorus_plant", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 8 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/chorus_quadratic.json b/data/nullscape/worldgen/placed_feature/chorus_quadratic.json new file mode 100755 index 0000000..e039741 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/chorus_quadratic.json @@ -0,0 +1,42 @@ +{ + "feature": "nullscape:chorus_quadratic", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 120 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 17, + "noise_factor": 1563, + "noise_offset": 0.2 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 18, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:rarity_filter", + "chance": 3500 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -10, + 0 + ], + "blocks": [ + "minecraft:end_stone" + ] + } + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/chorus_variation.json b/data/nullscape/worldgen/placed_feature/chorus_variation.json new file mode 100755 index 0000000..4aa20f2 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/chorus_variation.json @@ -0,0 +1,28 @@ +{ + "feature": "nullscape:chorus_quadratic", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 120 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 17, + "noise_factor": 250, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1350, + "noise_offset": 0 + }, + { + "type": "minecraft:rarity_filter", + "chance": 350 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/crystal/crystal.json b/data/nullscape/worldgen/placed_feature/crystal/crystal.json new file mode 100755 index 0000000..f8580b8 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/crystal/crystal.json @@ -0,0 +1,1147 @@ +{ + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 150, + "xz_spread": 8, + "y_spread": 8, + "feature": { + "feature": { + "type": "minecraft:random_selector", + "config": { + "features": [ + { + "chance": 0.015, + "feature": { + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 50, + "xz_spread": 2, + "y_spread": 2, + "feature": { + "feature": { + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 25324, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 3.75, + 2.5, + 1.75, + 2.25, + 5.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:light", + "Properties": { + "level": "15", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "14", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "13", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "12", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "11", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "10", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "9", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "8", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "7", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "6", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "5", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "4", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "3", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "2", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "1", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "0", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "1", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "2", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:cave_air", + "Properties": { + "level": "3", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "4", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "5", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "6", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "7", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "8", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "9", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "10", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "11", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "12", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "13", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "14", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:light", + "Properties": { + "level": "15", + "waterlogged": "false" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + } + ] + } + ] + } + } + ] + } + ] + } + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:amethyst_block", + "minecraft:cave_air", + "light" + ] + } + } + ] + } + }, + { + "chance": 0.4, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 999, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 1.075, + 1.5, + 0.75, + 1.05, + 1.25 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone", + "light", + "obsidian", + "crying_obsidian" + ] + } + ] + } + ] + } + } + ] + } + }, + { + "chance": 0.1, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 999, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 0.95, + 1.5, + 2, + 1.5, + 3, + 4.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:obsidiann" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + }, + { + "Name": "minecraft:crying_obsidian" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:blackstone" + ] + } + ] + } + } + ] + } + } + ], + "default": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 9, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 1.075, + 1.5, + 0.75, + 1.05, + 1.25 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "light" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + } + ] + } + ] + } + } + ] + } + } + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone", + "obsidian", + "crying_obsidian" + ] + } + ] + } + ] + } + }, + { + "type": "minecraft:count", + "count": 75 + }, + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:random_offset", + "xz_spread": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 5 + } + }, + "y_spread": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 5 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/crystal/crystal2.json b/data/nullscape/worldgen/placed_feature/crystal/crystal2.json new file mode 100755 index 0000000..86f7077 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/crystal/crystal2.json @@ -0,0 +1,1050 @@ +{ + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 1, + "xz_spread": 0, + "y_spread": 0, + "feature": { + "feature": { + "type": "minecraft:random_selector", + "config": { + "features": [ + { + "chance": 0, + "feature": { + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 60, + "xz_spread": 3, + "y_spread": 3, + "feature": { + "feature": { + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "down", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "down", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "down", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "down", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "minecraft:amethyst_cluster", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:large_amethyst_bud", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + }, + { + "weight": 4, + "data": { + "Name": "minecraft:medium_amethyst_bud", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + }, + { + "weight": 6, + "data": { + "Name": "minecraft:small_amethyst_bud", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + } + ] + } + } + ] + } + ] + } + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:amethyst_block", + "minecraft:cave_air" + ] + } + } + ] + } + }, + { + "chance": 0.495, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 999, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 1.075, + 1.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + } + ] + } + ] + } + } + ] + } + } + ], + "default": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 9, + "noise": { + "firstOctave": -6, + "amplitudes": [ + 1.075, + 1.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:cave_air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:tuff", + "minecraft:blackstone" + ] + } + ] + } + ] + } + } + ] + } + } + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:amethyst_block", + "minecraft:blackstone" + ] + } + ] + } + ] + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/delta/delta2.json b/data/nullscape/worldgen/placed_feature/delta/delta2.json new file mode 100755 index 0000000..560a5d8 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/delta/delta2.json @@ -0,0 +1,9 @@ +{ + "feature": "nullscape:delta/delta2", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 155 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/destroy_everything.json b/data/nullscape/worldgen/placed_feature/destroy_everything.json new file mode 100755 index 0000000..6bf9043 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/destroy_everything.json @@ -0,0 +1,20 @@ +{ + "feature": "nullscape:destroy_everything", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "heightmap", + "heightmap": "WORLD_SURFACE" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/float/asteroid.json b/data/nullscape/worldgen/placed_feature/float/asteroid.json new file mode 100755 index 0000000..68fdf21 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/float/asteroid.json @@ -0,0 +1,57 @@ +{ + "feature": { + "type": "minecraft:random_selector", + "config": { + "features": [ + { + "chance": 0.9375, + "feature": { + "feature": "nullscape:float/asteroid", + "placement": [] + } + } + ], + "default": { + "feature": "nullscape:float/asteroid_special", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 405, + "noise_offset": -0.15 + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 11, + "noise_factor": 1021, + "noise_offset": -0.325 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:rarity_filter", + "chance": 8 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:biased_to_bottom", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "below_top": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/float/end_island_decorated.json b/data/nullscape/worldgen/placed_feature/float/end_island_decorated.json new file mode 100755 index 0000000..28be804 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/float/end_island_decorated.json @@ -0,0 +1,40 @@ +{ + "feature": "nullscape:float/end_island_decorated", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 14 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 75, + "data": 2 + }, + { + "weight": 25, + "data": 4 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "min_inclusive": { + "above_bottom": 14 + }, + "max_inclusive": { + "below_top": 64 + }, + "type": "minecraft:uniform" + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/float/end_island_decorated_void.json b/data/nullscape/worldgen/placed_feature/float/end_island_decorated_void.json new file mode 100755 index 0000000..29872b4 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/float/end_island_decorated_void.json @@ -0,0 +1,40 @@ +{ + "feature": "nullscape:float/end_island_decorated_void", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 25 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 75, + "data": 1 + }, + { + "weight": 25, + "data": 2 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "min_inclusive": { + "above_bottom": 7 + }, + "max_inclusive": { + "below_top": 64 + }, + "type": "minecraft:uniform" + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/float/inv.json b/data/nullscape/worldgen/placed_feature/float/inv.json new file mode 100755 index 0000000..0657601 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/float/inv.json @@ -0,0 +1,60 @@ +{ + "feature": "nullscape:float/inv", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 50 + }, + { + "weight": 0, + "data": 50 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 305, + "noise_offset": -1 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/patch_start.json b/data/nullscape/worldgen/placed_feature/glowstone/patch_start.json new file mode 100755 index 0000000..af7803e --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/patch_start.json @@ -0,0 +1,54 @@ +{ + "feature": "nullscape:glowstone/patch_start", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 2 + }, + { + "weight": 0, + "data": 2 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/roots.json b/data/nullscape/worldgen/placed_feature/glowstone/roots.json new file mode 100755 index 0000000..cf9eb99 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/roots.json @@ -0,0 +1,82 @@ +{ + "feature": "nullscape:glowstone/roots", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1100, + "noise_offset": 0 + }, + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "max_steps": 32, + "target_condition": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:blackstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -10, + 0 + ], + "blocks": [ + "minecraft:end_stone" + ] + } + ] + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/roots_first.json b/data/nullscape/worldgen/placed_feature/glowstone/roots_first.json new file mode 100755 index 0000000..6a42c31 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/roots_first.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:glowstone/roots_first", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 45, + "noise_offset": 0.135 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 45, + "noise_offset": -0.135 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/tree.json b/data/nullscape/worldgen/placed_feature/glowstone/tree.json new file mode 100755 index 0000000..ee71a8e --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/tree.json @@ -0,0 +1,56 @@ +{ + "feature": "nullscape:glowstone/tree", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1100, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 10000, + "noise_factor": 401, + "noise_offset": 0.35 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/tree2.json b/data/nullscape/worldgen/placed_feature/glowstone/tree2.json new file mode 100755 index 0000000..32f9870 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/tree2.json @@ -0,0 +1,56 @@ +{ + "feature": "nullscape:glowstone/tree2", + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1100, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -6000, + "noise_factor": 401, + "noise_offset": -0.3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/glowstone/tree_d1.json b/data/nullscape/worldgen/placed_feature/glowstone/tree_d1.json new file mode 100755 index 0000000..a1382be --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/glowstone/tree_d1.json @@ -0,0 +1,46 @@ +{ + "feature": "nullscape:glowstone/tree_d1", + "placement": [ + { + "type": "minecraft:count", + "count": 220 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/highland/glowstone_patch.json b/data/nullscape/worldgen/placed_feature/highland/glowstone_patch.json new file mode 100755 index 0000000..45f6c39 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/highland/glowstone_patch.json @@ -0,0 +1,154 @@ +{ + "feature": { + "type": "minecraft:vegetation_patch", + "config": { + "surface": "floor", + "depth": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 3 + } + }, + "vertical_range": 3, + "extra_bottom_block_chance": 0, + "extra_edge_column_chance": 0.5, + "vegetation_chance": 0, + "xz_radius": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 4 + } + }, + "replaceable": "#nullscape:end_stone", + "ground_state": { + "type": "minecraft:dual_noise_provider", + "seed": 0, + "noise": { + "firstOctave": -8, + "amplitudes": [ + 0, + 0 + ] + }, + "scale": 1, + "variety": { + "min_inclusive": 1, + "max_inclusive": 1 + }, + "slow_noise": { + "firstOctave": -7, + "amplitudes": [ + 1, + 1.5, + 1, + 1.75, + 1, + 2.75 + ] + }, + "slow_scale": 1, + "states": [ + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + } + ] + }, + "vegetation_feature": "nullscape:highland/glowstone_tree" + } + }, + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 40 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1100, + "noise_offset": 0 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/highland/glowstone_tree.json b/data/nullscape/worldgen/placed_feature/highland/glowstone_tree.json new file mode 100755 index 0000000..7e5a1b4 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/highland/glowstone_tree.json @@ -0,0 +1,465 @@ +{ + "feature": { + "type": "minecraft:random_selector", + "config": { + "features": [ + { + "chance": 0.05, + "feature": { + "feature": { + "type": "minecraft:replace_single_block", + "config": { + "targets": [ + { + "target": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:blackstone" + }, + "state": { + "Name": "minecraft:glowstone" + } + } + ] + } + }, + "placement": [ + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": 1 + } + ] + } + }, + { + "chance": 0.95, + "feature": { + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 4, + "xz_spread": 14, + "y_spread": 64, + "feature": { + "feature": { + "type": "minecraft:block_column", + "config": { + "direction": "down", + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "prioritize_tip": false, + "layers": [ + { + "height": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 1, + "max_inclusive": 5 + } + }, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:glowstone" + } + } + } + ] + } + }, + "placement": [ + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "target_condition": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + -1 + ], + "blocks": [ + "minecraft:glowstone" + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + -1 + ], + "blocks": [ + "minecraft:glowstone" + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + -1 + ], + "blocks": [ + "minecraft:glowstone" + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + -1 + ], + "blocks": [ + "minecraft:glowstone" + ] + } + ] + } + } + ] + }, + { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + -1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:not", + "predicate": { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 1 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:glowstone" + ] + } + ] + } + } + ] + } + ] + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -16 + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": -16 + } + ] + } + } + ], + "default": { + "feature": { + "type": "minecraft:no_op", + "config": {} + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 601, + "noise_offset": -0.1 + }, + { + "type": "minecraft:count", + "count": 160 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/highland/patch_bottom.json b/data/nullscape/worldgen/placed_feature/highland/patch_bottom.json new file mode 100755 index 0000000..03bac47 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/highland/patch_bottom.json @@ -0,0 +1,189 @@ +{ + "feature": { + "type": "minecraft:vegetation_patch", + "config": { + "surface": "ceiling", + "depth": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 3 + } + }, + "vertical_range": 3, + "extra_bottom_block_chance": 0, + "extra_edge_column_chance": 0.5, + "vegetation_chance": 0.000225, + "xz_radius": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 4 + } + }, + "replaceable": "#nullscape:end_stone", + "ground_state": { + "type": "minecraft:dual_noise_provider", + "seed": 0, + "noise": { + "firstOctave": -8, + "amplitudes": [ + 0, + 0 + ] + }, + "scale": 1, + "variety": { + "min_inclusive": 1, + "max_inclusive": 1 + }, + "slow_noise": { + "firstOctave": -7, + "amplitudes": [ + 1, + 1.5, + 1, + 1.75, + 1, + 2.75 + ] + }, + "slow_scale": 1, + "states": [ + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + }, + { + "Name": "minecraft:end_stone" + } + ] + }, + "vegetation_feature": "nullscape:highland/glowstone_tree" + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:count", + "count": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 1800, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 1100, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "max_steps": 32, + "target_condition": { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:end_stone" + ] + } + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/infested/sculk.json b/data/nullscape/worldgen/placed_feature/infested/sculk.json new file mode 100755 index 0000000..624daa0 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/infested/sculk.json @@ -0,0 +1,42 @@ +{ + "feature": { + "type": "minecraft:sculk_patch", + "config": { + "charge_count": 8, + "amount_per_charge": 500, + "spread_attempts": 64, + "growth_rounds": 0, + "spread_rounds": 1, + "extra_rare_growths": 0, + "catalyst_chance": 0.01 + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:count", + "count": 128 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 0 + }, + "max_inclusive": { + "absolute": 384 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/infested/tendril.json b/data/nullscape/worldgen/placed_feature/infested/tendril.json new file mode 100755 index 0000000..30dabe0 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/infested/tendril.json @@ -0,0 +1,551 @@ +{ + "feature": { + "type": "minecraft:random_patch", + "config": { + "tries": 500, + "xz_spread": 11, + "y_spread": 11, + "feature": { + "feature": { + "type": "minecraft:random_selector", + "config": { + "features": [ + { + "chance": 0.5, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 999, + "noise": { + "firstOctave": 5, + "amplitudes": [ + 1.75 + ] + }, + "scale": 0.00001, + "states": [ + { + "Name": "minecraft:air" + }, + { + "Name": "minecraft:cave_air" + }, + { + "Name": "minecraft:air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "minecraft:sculk", + "minecraft:stone", + "cave_air", + "obsidian", + "crying_obsidian" + ] + } + ] + } + ] + } + } + ] + } + } + ], + "default": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 9, + "noise": { + "firstOctave": -4, + "amplitudes": [ + 1.75 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:void_air" + }, + { + "Name": "minecraft:sculk" + }, + { + "Name": "minecraft:void_air" + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 0 + ], + "blocks": [ + "minecraft:cave_air", + "cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:tuff", + "minecraft:stone" + ] + } + ] + } + ] + } + } + ] + } + } + }, + "placement": [] + } + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:count", + "count": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 0 + }, + "max_inclusive": { + "absolute": 384 + } + } + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air", + "minecraft:cave_air" + ] + }, + { + "type": "minecraft:any_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 1, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 1 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -1, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -1 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + + + { + "type": "minecraft:matching_blocks", + "offset": [ + 2, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + 2 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + -2, + 0, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 0, + -2 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 2, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -2, + 0 + ], + "blocks": [ + "minecraft:sculk", + "minecraft:stone", + "obsidian", + "crying_obsidian" + ] + } + ] + } + ] + } + }, + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:random_offset", + "xz_spread": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 5 + } + }, + "y_spread": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 5 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/chorus_plant.json b/data/nullscape/worldgen/placed_feature/mountain/chorus_plant.json new file mode 100755 index 0000000..ea61e40 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/chorus_plant.json @@ -0,0 +1,19 @@ +{ + "feature": "nullscape:mountain/chorus_plant", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 24 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 16, + "noise_factor": 185, + "noise_offset": 0 + }, + { + "type": "minecraft:rarity_filter", + "chance": 64 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/mountain.json b/data/nullscape/worldgen/placed_feature/mountain/mountain.json new file mode 100755 index 0000000..423ea66 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/mountain.json @@ -0,0 +1,52 @@ +{ + "feature": "nullscape:mountain/mountain", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 25, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/mountain_inv.json b/data/nullscape/worldgen/placed_feature/mountain/mountain_inv.json new file mode 100755 index 0000000..3d54e86 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/mountain_inv.json @@ -0,0 +1,52 @@ +{ + "feature": "nullscape:mountain/mountain_inv", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -25, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/mountain_inv_less.json b/data/nullscape/worldgen/placed_feature/mountain/mountain_inv_less.json new file mode 100755 index 0000000..e8a275a --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/mountain_inv_less.json @@ -0,0 +1,52 @@ +{ + "feature": "nullscape:mountain/mountain_inv_less", + "placement": [ + { + "type": "minecraft:count", + "count": 175 + }, + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -25, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/mountain_less.json b/data/nullscape/worldgen/placed_feature/mountain/mountain_less.json new file mode 100755 index 0000000..561886a --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/mountain_less.json @@ -0,0 +1,52 @@ +{ + "feature": "nullscape:mountain/mountain_less", + "placement": [ + { + "type": "minecraft:count", + "count": 175 + }, + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 25, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/pillar.json b/data/nullscape/worldgen/placed_feature/mountain/pillar.json new file mode 100755 index 0000000..cf138a3 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/pillar.json @@ -0,0 +1,66 @@ +{ + "feature": "nullscape:mountain/pillar", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 200 + }, + { + "weight": 0, + "data": 200 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -20, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 1000 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 234, + "noise_offset": 0.4 + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/mountain/pillar_down.json b/data/nullscape/worldgen/placed_feature/mountain/pillar_down.json new file mode 100755 index 0000000..e04394b --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/mountain/pillar_down.json @@ -0,0 +1,66 @@ +{ + "feature": "nullscape:mountain/pillar_down", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 200 + }, + { + "weight": 0, + "data": 200 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 20, + "noise_factor": 305, + "noise_offset": 0 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 1000 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 234, + "noise_offset": 0.4 + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/base.json b/data/nullscape/worldgen/placed_feature/rift/base.json new file mode 100755 index 0000000..4959290 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/base.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:rift/base", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/blackstone.json b/data/nullscape/worldgen/placed_feature/rift/blackstone.json new file mode 100755 index 0000000..3fc14a8 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/blackstone.json @@ -0,0 +1,58 @@ +{ + "feature": "nullscape:rift/blackstone", + "placement": [ + { + "type": "minecraft:count", + "count": 165 + }, + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 76, + "noise_offset": 1 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -6, + "noise_factor": 76, + "noise_offset": -1 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 1 + }, + "max_inclusive": { + "below_top": 1 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:rarity_filter", + "chance": 20 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_1.json b/data/nullscape/worldgen/placed_feature/rift/cracks_1.json new file mode 100755 index 0000000..26d29de --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_1.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": -0.5 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.34 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.34 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_2.json b/data/nullscape/worldgen/placed_feature/rift/cracks_2.json new file mode 100755 index 0000000..4b036fc --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_2.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": -0.25 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.275 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.275 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_3.json b/data/nullscape/worldgen/placed_feature/rift/cracks_3.json new file mode 100755 index 0000000..5750426 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_3.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.2 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.2 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_4.json b/data/nullscape/worldgen/placed_feature/rift/cracks_4.json new file mode 100755 index 0000000..fc83e56 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_4.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": 0.375 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.135 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.135 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_5.json b/data/nullscape/worldgen/placed_feature/rift/cracks_5.json new file mode 100755 index 0000000..e0ba122 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_5.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": 0.75 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.08 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.08 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_crying.json b/data/nullscape/worldgen/placed_feature/rift/cracks_crying.json new file mode 100755 index 0000000..78f967b --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_crying.json @@ -0,0 +1,50 @@ +{ + "feature": "nullscape:rift/cracks_crying", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": -0.565 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.15 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 35 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_crying_2.json b/data/nullscape/worldgen/placed_feature/rift/cracks_crying_2.json new file mode 100755 index 0000000..97452c9 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_crying_2.json @@ -0,0 +1,42 @@ +{ + "feature": "nullscape:rift/cracks_crying_2", + "placement": [ + { + "type": "minecraft:count", + "count": 172 + }, + { + "type": "minecraft:count", + "count": 7 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 284, + "noise_offset": -0.675 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 46, + "noise_offset": 0.225 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 46, + "noise_offset": -0.225 + }, + { + "type": "heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:rarity_filter", + "chance": 50 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/cracks_start.json b/data/nullscape/worldgen/placed_feature/rift/cracks_start.json new file mode 100755 index 0000000..3a55c70 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/cracks_start.json @@ -0,0 +1,21 @@ +{ + "feature": "nullscape:rift/cracks_start", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 5 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift.json b/data/nullscape/worldgen/placed_feature/rift/rift.json new file mode 100755 index 0000000..e1a0e4c --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift.json @@ -0,0 +1,31 @@ +{ + "feature": "nullscape:rift/rift", + "placement": [ + { + "type": "count", + "count": 16 + }, + { + "type": "minecraft:count_on_every_layer", + "count": 255 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 65, + "noise_offset": 0.075 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 65, + "noise_offset": -0.075 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 200, + "noise_offset": -0.8 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift_crying_obsidian.json b/data/nullscape/worldgen/placed_feature/rift/rift_crying_obsidian.json new file mode 100755 index 0000000..78b6a26 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift_crying_obsidian.json @@ -0,0 +1,9 @@ +{ + "feature": "nullscape:rift/rift_crying_obsidian", + "placement": [ + { + "type": "carving_mask", + "step": "air" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift_gateway.json b/data/nullscape/worldgen/placed_feature/rift/rift_gateway.json new file mode 100755 index 0000000..1407573 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift_gateway.json @@ -0,0 +1,52 @@ +{ + "feature": "nullscape:rift/rift_gateway", + "placement": [ + { + "type": "carving_mask", + "step": "air" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:air", + "minecraft:blackstone", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:end_stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:blackstone", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:end_stone" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:air" + ] + } + ] + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift_obsidian.json b/data/nullscape/worldgen/placed_feature/rift/rift_obsidian.json new file mode 100755 index 0000000..7c9a83d --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift_obsidian.json @@ -0,0 +1,9 @@ +{ + "feature": "nullscape:rift/rift_obsidian", + "placement": [ + { + "type": "carving_mask", + "step": "air" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift_obsidian_spread.json b/data/nullscape/worldgen/placed_feature/rift/rift_obsidian_spread.json new file mode 100755 index 0000000..051a8c3 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift_obsidian_spread.json @@ -0,0 +1,13 @@ +{ + "feature": "nullscape:rift/rift_obsidian_spread", + "placement": [ + { + "type": "carving_mask", + "step": "air" + }, + { + "type": "minecraft:rarity_filter", + "chance": 4 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/rift_sucks.json b/data/nullscape/worldgen/placed_feature/rift/rift_sucks.json new file mode 100755 index 0000000..954ff39 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/rift_sucks.json @@ -0,0 +1,31 @@ +{ + "feature": "nullscape:rift/rift_sucks", + "placement": [ + { + "type": "count", + "count": 16 + }, + { + "type": "minecraft:count_on_every_layer", + "count": 255 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 65, + "noise_offset": 0.075 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 65, + "noise_offset": -0.075 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 200, + "noise_offset": -0.8 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/rift/toast_feature.json b/data/nullscape/worldgen/placed_feature/rift/toast_feature.json new file mode 100755 index 0000000..f7ee880 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/rift/toast_feature.json @@ -0,0 +1,47 @@ +{ + "feature": "nullscape:rift/toast_feature", + "placement": [ + { + "type": "carving_mask", + "step": "air" + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:smooth_quartz", + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:smooth_quartz", + "minecraft:air" + ] + } + ] + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/amethyst1.json b/data/nullscape/worldgen/placed_feature/shadow/amethyst1.json new file mode 100755 index 0000000..ca69949 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/amethyst1.json @@ -0,0 +1,49 @@ +{ + "feature": "nullscape:shadow/amethyst_base", + "placement": [ + { + "type": "minecraft:count", + "count": 225 + }, + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 140, + "noise_offset": 0.12 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 140, + "noise_offset": -0.12 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 337, + "noise_offset": -0.45 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/amethyst2.json b/data/nullscape/worldgen/placed_feature/shadow/amethyst2.json new file mode 100755 index 0000000..ebafe1f --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/amethyst2.json @@ -0,0 +1,49 @@ +{ + "feature": "nullscape:shadow/amethyst_base", + "placement": [ + { + "type": "minecraft:count", + "count": 225 + }, + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 140, + "noise_offset": 0.08 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 140, + "noise_offset": -0.08 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 337, + "noise_offset": -0.35 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/amethyst3.json b/data/nullscape/worldgen/placed_feature/shadow/amethyst3.json new file mode 100755 index 0000000..e494207 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/amethyst3.json @@ -0,0 +1,49 @@ +{ + "feature": "nullscape:shadow/amethyst_base", + "placement": [ + { + "type": "minecraft:count", + "count": 225 + }, + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 140, + "noise_offset": 0.05 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 140, + "noise_offset": -0.05 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 337, + "noise_offset": -0.25 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/amethyst4.json b/data/nullscape/worldgen/placed_feature/shadow/amethyst4.json new file mode 100755 index 0000000..e0d99c7 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/amethyst4.json @@ -0,0 +1,49 @@ +{ + "feature": "nullscape:shadow/amethyst_base", + "placement": [ + { + "type": "minecraft:count", + "count": 225 + }, + { + "type": "minecraft:count", + "count": 12 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 140, + "noise_offset": 0.015 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 140, + "noise_offset": -0.015 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 337, + "noise_offset": -0.15 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/amethyst_base.json b/data/nullscape/worldgen/placed_feature/shadow/amethyst_base.json new file mode 100755 index 0000000..5eb9005 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/amethyst_base.json @@ -0,0 +1,19 @@ +{ + "feature": "nullscape:shadow/amethyst_base", + "placement": [ + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/basalt.json b/data/nullscape/worldgen/placed_feature/shadow/basalt.json new file mode 100755 index 0000000..1da3452 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/basalt.json @@ -0,0 +1,42 @@ +{ + "feature": "nullscape:shadow/basalt", + "placement": [ + { + "type": "minecraft:count", + "count": 170 + }, + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/blackstone.json b/data/nullscape/worldgen/placed_feature/shadow/blackstone.json new file mode 100755 index 0000000..a7a9714 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/blackstone.json @@ -0,0 +1,42 @@ +{ + "feature": "nullscape:shadow/blackstone", + "placement": [ + { + "type": "minecraft:count", + "count": 175 + }, + { + "type": "minecraft:count", + "count": 40 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/bone_tree.json b/data/nullscape/worldgen/placed_feature/shadow/bone_tree.json new file mode 100755 index 0000000..2903597 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/bone_tree.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:shadow/bone_tree", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/bone_trees1.json b/data/nullscape/worldgen/placed_feature/shadow/bone_trees1.json new file mode 100755 index 0000000..12ab0ee --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/bone_trees1.json @@ -0,0 +1,67 @@ +{ + "feature": "nullscape:shadow/bone_trees1", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 250 + }, + { + "weight": 0, + "data": 250 + } + ] + } + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 10, + "noise_factor": 226, + "noise_offset": 0.25 + }, + { + "type": "minecraft:rarity_filter", + "chance": 100 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/coral_ceiling.json b/data/nullscape/worldgen/placed_feature/shadow/coral_ceiling.json new file mode 100755 index 0000000..8f75629 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/coral_ceiling.json @@ -0,0 +1,28 @@ +{ + "feature": "nullscape:shadow/coral_ceiling", + "placement": [ + { + "type": "minecraft:count", + "count": 230 + }, + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/coral_surface.json b/data/nullscape/worldgen/placed_feature/shadow/coral_surface.json new file mode 100755 index 0000000..174b062 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/coral_surface.json @@ -0,0 +1,28 @@ +{ + "feature": "nullscape:shadow/coral_surface", + "placement": [ + { + "type": "minecraft:count", + "count": 230 + }, + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/droop.json b/data/nullscape/worldgen/placed_feature/shadow/droop.json new file mode 100755 index 0000000..6867772 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/droop.json @@ -0,0 +1,45 @@ +{ + "feature": "nullscape:shadow/droop", + "placement": [ + { + "type": "minecraft:count", + "count": 250 + }, + { + "type": "minecraft:count", + "count": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "up", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/pillar.json b/data/nullscape/worldgen/placed_feature/shadow/pillar.json new file mode 100755 index 0000000..d10d15c --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/pillar.json @@ -0,0 +1,55 @@ +{ + "feature": "nullscape:shadow/pillar", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 200 + }, + { + "weight": 0, + "data": 200 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 20, + "noise_factor": 257, + "noise_offset": 0.45 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 1000 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 50, + "noise_factor": 234, + "noise_offset": 0.4 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/pillar_down.json b/data/nullscape/worldgen/placed_feature/shadow/pillar_down.json new file mode 100755 index 0000000..985e68b --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/pillar_down.json @@ -0,0 +1,55 @@ +{ + "feature": "nullscape:shadow/pillar_down", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 100, + "data": 200 + }, + { + "weight": 0, + "data": 200 + } + ] + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 20, + "noise_factor": 255, + "noise_offset": 0.45 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 1000 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 50, + "noise_factor": 231, + "noise_offset": 0.4 + }, + { + "type": "biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/pillars_coral.json b/data/nullscape/worldgen/placed_feature/shadow/pillars_coral.json new file mode 100755 index 0000000..d03bc23 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/pillars_coral.json @@ -0,0 +1,388 @@ +{ + "feature": { + "type": "minecraft:simple_random_selector", + "config": { + "features": [ + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 25646, + "noise": { + "firstOctave": -4, + "amplitudes": [ + 1, + 1, + 1.5, + 2.5, + 2.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:dead_brain_coral_wall_fan", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_bubble_coral_wall_fan", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_fire_coral_wall_fan", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_horn_coral_wall_fan", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_tube_coral_wall_fan", + "Properties": { + "facing": "east", + "waterlogged": "false" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + -1, + 0, + 0 + ], + "tag": "nullscape:coral" + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 25646, + "noise": { + "firstOctave": -4, + "amplitudes": [ + 1, + 1, + 1.5, + 2.5, + 2.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:dead_brain_coral_wall_fan", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_bubble_coral_wall_fan", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_fire_coral_wall_fan", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_horn_coral_wall_fan", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_tube_coral_wall_fan", + "Properties": { + "facing": "west", + "waterlogged": "false" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + 1, + 0, + 0 + ], + "tag": "nullscape:coral" + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 25646, + "noise": { + "firstOctave": -4, + "amplitudes": [ + 1, + 1, + 1.5, + 2.5, + 2.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:dead_brain_coral_wall_fan", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_bubble_coral_wall_fan", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_fire_coral_wall_fan", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_horn_coral_wall_fan", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_tube_coral_wall_fan", + "Properties": { + "facing": "north", + "waterlogged": "false" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + 0, + 1 + ], + "tag": "nullscape:coral" + } + ] + } + } + ] + }, + { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 25646, + "noise": { + "firstOctave": -4, + "amplitudes": [ + 1, + 1, + 1.5, + 2.5, + 2.5 + ] + }, + "scale": 1, + "states": [ + { + "Name": "minecraft:dead_brain_coral_wall_fan", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_bubble_coral_wall_fan", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_fire_coral_wall_fan", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_horn_coral_wall_fan", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + }, + { + "Name": "minecraft:dead_tube_coral_wall_fan", + "Properties": { + "facing": "south", + "waterlogged": "false" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_block_tag", + "offset": [ + 0, + 0, + -1 + ], + "tag": "nullscape:coral" + } + ] + } + } + ] + } + ] + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": 9 + }, + { + "type": "minecraft:count_on_every_layer", + "count": 256 + }, + { + "type": "minecraft:random_offset", + "xz_spread": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -4, + "max_inclusive": 4 + } + }, + "y_spread": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 16, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 16 + } + } + } + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 16, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -5, + "max_inclusive": 16 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/shadow_cut.json b/data/nullscape/worldgen/placed_feature/shadow/shadow_cut.json new file mode 100755 index 0000000..c47ed8d --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/shadow_cut.json @@ -0,0 +1,263 @@ +{ + "feature": { + "type": "minecraft:vegetation_patch", + "config": { + "surface": "floor", + "depth": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 6, + "max_inclusive": 8 + } + }, + "vertical_range": 4, + "extra_bottom_block_chance": 0, + "extra_edge_column_chance": 0.5, + "vegetation_chance": 0.65, + "xz_radius": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1, + "max_inclusive": 2 + } + }, + "replaceable": "#nullscape:amethyst_cut", + "ground_state": { + "type": "minecraft:dual_noise_provider", + "seed": 0, + "noise": { + "firstOctave": -2, + "amplitudes": [ + 0, + 0, + 0 + ] + }, + "scale": 1, + "variety": { + "min_inclusive": 24, + "max_inclusive": 26 + }, + "slow_noise": { + "firstOctave": -8, + "amplitudes": [ + 1.95, + 1.25, + 0.75, + 1.95 + ] + }, + "slow_scale": 1, + "states": [ + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + }, + { + "Name": "minecraft:smooth_basalt" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:amethyst_block" + }, + { + "Name": "minecraft:blackstone" + }, + { + "Name": "minecraft:smooth_basalt" + }, + { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_horn_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_tube_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_bubble_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + }, + { + "Name": "minecraft:dead_fire_coral_block" + } + ] + }, + "vegetation_feature": { + "feature": { + "type": "minecraft:netherrack_replace_blobs", + "config": { + "state": { + "Name": "minecraft:air" + }, + "target": { + "Name": "minecraft:amethyst_block" + }, + "radius": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 0, + "max_inclusive": 0 + } + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 1, + "max_inclusive": 4 + } + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 20 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 381, + "noise_offset": -0.25 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/simple_coral.json b/data/nullscape/worldgen/placed_feature/shadow/simple_coral.json new file mode 100755 index 0000000..96ba586 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/simple_coral.json @@ -0,0 +1,44 @@ +{ + "feature": "nullscape:shadow/simple_coral", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:dead_brain_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_fire_coral_block", + "minecraft:dead_horn_coral_block" + ] + }, + { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": [ + "minecraft:air" + ] + } + ] + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shadow/vegetation.json b/data/nullscape/worldgen/placed_feature/shadow/vegetation.json new file mode 100755 index 0000000..0af5195 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shadow/vegetation.json @@ -0,0 +1,37 @@ +{ + "feature": "nullscape:shadow/simple_coral", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 80 + }, + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:replaceable" + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": [ + "minecraft:dead_fire_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_horn_coral_block" + ] + } + ] + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shattered/basalt.json b/data/nullscape/worldgen/placed_feature/shattered/basalt.json new file mode 100755 index 0000000..ff9777f --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shattered/basalt.json @@ -0,0 +1,19 @@ +{ + "feature": "nullscape:shattered/basalt", + "placement": [ + { + "type": "carving_mask", + "step": "liquid" + }, + { + "type": "minecraft:rarity_filter", + "chance": 8 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 177, + "noise_offset": 0.35 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shattered/blackstone.json b/data/nullscape/worldgen/placed_feature/shattered/blackstone.json new file mode 100755 index 0000000..03b9518 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shattered/blackstone.json @@ -0,0 +1,19 @@ +{ + "feature": "nullscape:shattered/blackstone", + "placement": [ + { + "type": "carving_mask", + "step": "liquid" + }, + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 177, + "noise_offset": 0.35 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/shattered/crying.json b/data/nullscape/worldgen/placed_feature/shattered/crying.json new file mode 100755 index 0000000..8fe0e5e --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/shattered/crying.json @@ -0,0 +1,19 @@ +{ + "feature": "nullscape:shattered/crying", + "placement": [ + { + "type": "carving_mask", + "step": "liquid" + }, + { + "type": "minecraft:rarity_filter", + "chance": 15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 177, + "noise_offset": 0.35 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/base.json b/data/nullscape/worldgen/placed_feature/tar/base.json new file mode 100755 index 0000000..51748ba --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/base.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:tar/base", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_1.json b/data/nullscape/worldgen/placed_feature/tar/cracks_1.json new file mode 100755 index 0000000..c91b4c9 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_1.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 252 + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 144, + "noise_offset": 0 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 33, + "noise_offset": 0.25 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 33, + "noise_offset": -0.25 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_2.json b/data/nullscape/worldgen/placed_feature/tar/cracks_2.json new file mode 100755 index 0000000..09bb072 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_2.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 252 + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 144, + "noise_offset": 0.1 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 33, + "noise_offset": 0.2 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 33, + "noise_offset": -0.2 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_3.json b/data/nullscape/worldgen/placed_feature/tar/cracks_3.json new file mode 100755 index 0000000..a8637a2 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_3.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 252 + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 144, + "noise_offset": 0.2 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 33, + "noise_offset": 0.15 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 33, + "noise_offset": -0.15 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_4.json b/data/nullscape/worldgen/placed_feature/tar/cracks_4.json new file mode 100755 index 0000000..1b2e9f4 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_4.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 252 + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 144, + "noise_offset": 0.3 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 33, + "noise_offset": 0.1 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 33, + "noise_offset": -0.1 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_5.json b/data/nullscape/worldgen/placed_feature/tar/cracks_5.json new file mode 100755 index 0000000..75e109a --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_5.json @@ -0,0 +1,34 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:count", + "count": 252 + }, + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 40, + "noise_factor": 144, + "noise_offset": 0.4 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 1, + "noise_factor": 33, + "noise_offset": 0.05 + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": -1, + "noise_factor": 33, + "noise_offset": -0.05 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/cracks_start.json b/data/nullscape/worldgen/placed_feature/tar/cracks_start.json new file mode 100755 index 0000000..0a9d77a --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/cracks_start.json @@ -0,0 +1,21 @@ +{ + "feature": "nullscape:tar/cracks_start", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 5 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/glass_column.json b/data/nullscape/worldgen/placed_feature/tar/glass_column.json new file mode 100755 index 0000000..1bed5f3 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/glass_column.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:tar/glass_column", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/tar_pit.json b/data/nullscape/worldgen/placed_feature/tar/tar_pit.json new file mode 100755 index 0000000..0feaa96 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/tar_pit.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:tar/tar_pit", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/tar_pit_glowing.json b/data/nullscape/worldgen/placed_feature/tar/tar_pit_glowing.json new file mode 100755 index 0000000..6724de1 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/tar_pit_glowing.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:tar/tar_pit_glowing", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/tar/tar_pits.json b/data/nullscape/worldgen/placed_feature/tar/tar_pits.json new file mode 100755 index 0000000..92f770e --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/tar/tar_pits.json @@ -0,0 +1,54 @@ +{ + "feature": "nullscape:tar/tar_pits", + "placement": [ + { + "type": "count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 50, + "max_inclusive": 55 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:noise_based_count", + "noise_to_count_ratio": 27, + "noise_factor": 144, + "noise_offset": -0.1 + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:rarity_filter", + "chance": 60 + }, + { + "type": "minecraft:environment_scan", + "direction_of_search": "down", + "target_condition": { + "type": "minecraft:solid" + }, + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": [ + "minecraft:air" + ] + }, + "max_steps": 32 + } + ] +} diff --git a/data/nullscape/worldgen/placed_feature/void/void_94.json b/data/nullscape/worldgen/placed_feature/void/void_94.json new file mode 100755 index 0000000..c364cfe --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/void/void_94.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:void/void_94", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/void/void_95.json b/data/nullscape/worldgen/placed_feature/void/void_95.json new file mode 100755 index 0000000..73ac449 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/void/void_95.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:void/void_95", + "placement": [] +} diff --git a/data/nullscape/worldgen/placed_feature/void/void_96.json b/data/nullscape/worldgen/placed_feature/void/void_96.json new file mode 100755 index 0000000..ccdbe54 --- /dev/null +++ b/data/nullscape/worldgen/placed_feature/void/void_96.json @@ -0,0 +1,4 @@ +{ + "feature": "nullscape:void/void_96", + "placement": [] +} diff --git a/data/nullscape/worldgen/processor_list/disintegrate_20.json b/data/nullscape/worldgen/processor_list/disintegrate_20.json new file mode 100755 index 0000000..eac4ac8 --- /dev/null +++ b/data/nullscape/worldgen/processor_list/disintegrate_20.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "input_predicate": { + "predicate_type": "minecraft:random_block_match", + "block": "minecraft:bone_block", + "probability": 0.10 + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + } + ] +} diff --git a/data/nullscape/worldgen/processor_list/disintegrate_50.json b/data/nullscape/worldgen/processor_list/disintegrate_50.json new file mode 100755 index 0000000..8eb85d2 --- /dev/null +++ b/data/nullscape/worldgen/processor_list/disintegrate_50.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "input_predicate": { + "predicate_type": "minecraft:random_block_match", + "block": "minecraft:bone_block", + "probability": 0.20 + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + } + ] +} diff --git a/data/nullscape/worldgen/processor_list/disintegrate_80.json b/data/nullscape/worldgen/processor_list/disintegrate_80.json new file mode 100755 index 0000000..86fe142 --- /dev/null +++ b/data/nullscape/worldgen/processor_list/disintegrate_80.json @@ -0,0 +1,22 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "location_predicate": { + "predicate_type": "minecraft:always_true" + }, + "input_predicate": { + "predicate_type": "minecraft:random_block_match", + "block": "minecraft:bone_block", + "probability": 0.50 + }, + "output_state": { + "Name": "minecraft:air" + } + } + ] + } + ] +} diff --git a/data/nullscape/worldgen/processor_list/void_suppression.json b/data/nullscape/worldgen/processor_list/void_suppression.json new file mode 100755 index 0000000..3ab3e2a --- /dev/null +++ b/data/nullscape/worldgen/processor_list/void_suppression.json @@ -0,0 +1,21 @@ +{ + "processors": [ + { + "processor_type": "minecraft:rule", + "rules": [ + { + "location_predicate": { + "predicate_type": "minecraft:block_match", + "block": "minecraft:void_air" + }, + "input_predicate": { + "predicate_type": "minecraft:always_true" + }, + "output_state": { + "Name": "minecraft:structure_void" + } + } + ] + } + ] +} diff --git a/data/nullscape/worldgen/structure/dragon_skeleton.json b/data/nullscape/worldgen/structure/dragon_skeleton.json new file mode 100755 index 0000000..39c6e04 --- /dev/null +++ b/data/nullscape/worldgen/structure/dragon_skeleton.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:jigsaw", + "biomes": [ + "nullscape:shadowlands" + ], + "step": "surface_structures", + "spawn_overrides": {}, + "terrain_adaptation": "none", + "start_pool": "nullscape:dragon_skeleton", + "size": 6, + "start_height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 20 + }, + "max_inclusive": { + "absolute": 240 + } + }, + "max_distance_from_center": 112, + "use_expansion_hack": false +} diff --git a/data/nullscape/worldgen/structure_set/dragon_skeleton.json b/data/nullscape/worldgen/structure_set/dragon_skeleton.json new file mode 100755 index 0000000..efa3f12 --- /dev/null +++ b/data/nullscape/worldgen/structure_set/dragon_skeleton.json @@ -0,0 +1,17 @@ +{ + "structures": [ + { + "structure": "nullscape:dragon_skeleton", + "weight": 1 + } + ], + "placement": { + "type": "minecraft:random_spread", + "salt": 461798080, + "frequency_reduction_method": "default", + "frequency": 0.6, + "spread_type": "linear", + "spacing": 18, + "separation": 7 + } +} diff --git a/data/nullscape/worldgen/template_pool/dragon_skeleton.json b/data/nullscape/worldgen/template_pool/dragon_skeleton.json new file mode 100755 index 0000000..68c0485 --- /dev/null +++ b/data/nullscape/worldgen/template_pool/dragon_skeleton.json @@ -0,0 +1,300 @@ +{ + "name": "d", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "minecraft:empty" + } + }, + + + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_20" + } + }, + + + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_50" + } + }, + + + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_80" + } + } + ] +} diff --git a/data/nullscape/worldgen/template_pool/dragon_skeleton_boneyard.json b/data/nullscape/worldgen/template_pool/dragon_skeleton_boneyard.json new file mode 100755 index 0000000..68c0485 --- /dev/null +++ b/data/nullscape/worldgen/template_pool/dragon_skeleton_boneyard.json @@ -0,0 +1,300 @@ +{ + "name": "d", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "minecraft:empty" + } + }, + { + "weight": 2, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "minecraft:empty" + } + }, + + + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_20" + } + }, + { + "weight": 3, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_20" + } + }, + + + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_50" + } + }, + { + "weight": 5, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_50" + } + }, + + + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/1", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/2", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/3", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/4", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/5", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/6", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/7", + "processors": "nullscape:disintegrate_80" + } + }, + { + "weight": 4, + "element": { + "element_type": "minecraft:single_pool_element", + "projection": "rigid", + "location": "nullscape:skeleton/8", + "processors": "nullscape:disintegrate_80" + } + } + ] +} diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..d5c1159 --- /dev/null +++ b/license.txt @@ -0,0 +1,50 @@ +This License describes how all Stardust Labs datapacks and mods and their code may (and, conversely, may not) be used. This License is subject to change by Starmute and Stardust Labs at their SOLE DISCRETION at any time. This License was last altered on June 23, 2022. + + +PERMITTED USES +=================== + + - You are UNCONDITIONALLY PERMITTED to use any Stardust Labs datapacks and/or mods for whatever personal purpose you desire. You can use it on a singleplayer world and modify it as much as you want, as long as you don't distribute modified versions of the datapacks and/or mods. + + - You are PERMITTED to use Stardust Labs datapacks or mods on any Minecraft server, public or private. It is recommended, but not required, that you give credit to Stardust Labs or note somewhere on your server that said datapack or mod is in use. Furthermore: + + * You are additionally permitted to use Stardust Labs datapacks and mods in any MODIFIED form on any Minecraft server, public or private, provided that you do not distribute any modified versions of said datapacks or mods. + + - You are PERMITTED to use Stardust Labs datapacks or mods in their UNMODIFIED form as part of a publicly distributed modpack. If you do so, you MUST give credit to Stardust Labs and include a link to the relevant datapack or mod. The datapack or mod must be used in its whole form (besides any compatibility addons for other datapacks.) + + - You are PERMITTED to use Stardust Labs datapacks or mods as part of for-profit endeavors such as servers and modpacks, as long as the other guidelines of this License have been followed, appropriate credit has been given, and as long as you have not been specifically prohibited from doing so. + + + +PROHIBITED USES +==================== + + - You are FORBIDDEN to reupload, republish, or redistribute any Stardust Labs datapack or mod in a standalone format. + + - You are FORBIDDEN to reupload, republish, or redistribute any modified version of any Stardust Labs datapack or mod on its own. + + - You are FORBIDDEN to use any Stardust Labs datapack in any publicly distributed "datapack-pack" without Starmute's express permission. A "datapack-pack" is a collection of datapacks offered for download in a bundled form, which is distinct from a modpack because it can be used on an unmodified client. + + - You are FORBIDDEN to use any modified version of any Stardust Labs datapack as part of any publicly distributed modpack or "datapack-pack" without permission. This includes cases where the datapack is required to be downloaded separately, with parts being overridden. There are three exceptions to this: + + i) Changing the world seed or adding any seed randomizing functionality is allowed. + + ii) Adding structures to the pack or altering structure generation (besides altering the datapack's own structures) is allowed. + + iii) Modifying loot tables is allowed unconditionally. + + - You are FORBIDDEN to use portions of any Stardust Labs datapack or mod's code as part of any other datapack, "datapack-pack", modpack or mod without express permission. You are free to read the code and use it as a resource to learn from, but copying parts of it into another project is not allowed. There is one exception for this: + + i) Making compatibility addons between Stardust Labs datapacks and other datapacks is allowed. + +EXEMPTIONS +============= + + - Anyone currently employed by Mojang Studios is granted UNCONDITIONAL PERMISSION to use any part of any Stardust Labs datapack or mod, or its code, for any purpose relating to Minecraft's development. + + - Stardust Labs reserves the right to prohibit certain individuals and groups from profiting off of these Projects at our SOLE DISCRETION. However, no individual or group will be prohibited from using these Projects for personal purposes, or any purpose that does not involve profit, as long as the other guidelines of this License have been followed. + +OFFICIAL PERMISSION +========================== + +It should be assumed that, given Stardust Labs holds full copyright over all parts of its datapacks, that any part of this License can be overriden on an individual basis with the permission of Stardust Labs. Stardust Labs reserves the right to create and distribute modified versions of these datapacks or mods at any time, for any reason, whether personal or commissioned. \ No newline at end of file diff --git a/pack.mcmeta b/pack.mcmeta new file mode 100755 index 0000000..064e43d --- /dev/null +++ b/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 10, + "description": "Nullscape - End Reborn" + } +} diff --git a/pack.png b/pack.png new file mode 100755 index 0000000000000000000000000000000000000000..d01c11be819fe09bcdd699f486331d968cc798cc GIT binary patch literal 36816 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

Ub1B0+~ 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 zds