├── .idea
├── .gitignore
├── misc.xml
├── modules.xml
├── packs.iml
├── runConfigurations.xml
└── vcs.xml
├── LICENSE
├── README.md
├── biome-providers
├── README.md
├── presets
│ ├── default.yml
│ └── single.yml
├── sources
│ ├── aether.yml
│ ├── betterend.yml
│ ├── reimagEND.yml
│ └── vanilla.yml
└── stages
│ ├── add_border_biomes.yml
│ ├── aether_pockets.yml
│ ├── base-distribution
│ ├── aether_distribution.yml
│ ├── end_biome_distribution.yml
│ ├── optional
│ │ ├── betterend_distribution.yml
│ │ └── vanilla_distribution.yml
│ ├── ring_distribution.yml
│ └── void_distribution.yml
│ ├── dragon_pit.yml
│ ├── expand.yml
│ └── smooth.yml
├── biomes
├── abstract
│ ├── base_aether.yml
│ ├── base_end.yml
│ ├── base_void.yml
│ ├── carving
│ │ └── carving_land.yml
│ ├── cave
│ │ └── cave.yml
│ ├── features
│ │ ├── deposits
│ │ │ └── deposits_default.yml
│ │ └── ores
│ │ │ └── ores_default.yml
│ └── terrain
│ │ ├── aether
│ │ ├── coasts
│ │ │ ├── eq_aether_coast_isles.yml
│ │ │ └── eq_aether_coasts.yml
│ │ ├── eq_aether_cliffs.yml
│ │ ├── eq_aether_default.yml
│ │ ├── eq_aether_driftfalls.yml
│ │ └── mountains
│ │ │ ├── eq_aether_mountains.yml
│ │ │ └── eq_ridges.yml
│ │ ├── end
│ │ ├── defaults
│ │ │ ├── eq_default.yml
│ │ │ ├── eq_default_noodles.yml
│ │ │ └── eq_default_planes.yml
│ │ ├── eq_ashen.yml
│ │ ├── eq_bumpy.yml
│ │ ├── eq_fragmented.yml
│ │ ├── eq_mountains.yml
│ │ ├── eq_overhangs.yml
│ │ ├── eq_rectangular.yml
│ │ ├── eq_small_isles.yml
│ │ ├── eq_spikes.yml
│ │ ├── eq_spires.yml
│ │ └── eq_webs.yml
│ │ └── void
│ │ ├── eq_debri.yml
│ │ └── eq_void.yml
├── aether
│ ├── aether_ancient_aether.yml
│ ├── aether_azure_meadows.yml
│ ├── aether_bramble_wilds.yml
│ ├── aether_cloud_sea.yml
│ ├── aether_crimsic_landscapes.yml
│ ├── aether_driftfalls.yml
│ ├── aether_frostbite_woods.yml
│ ├── aether_golden_fields.yml
│ ├── aether_honey_heights.yml
│ ├── aether_orchard_woodlands.yml
│ ├── aether_tenebrous_thicket.yml
│ ├── coasts
│ │ ├── aether_insipid_coasts.yml
│ │ └── aether_marble_coasts.yml
│ └── mountains
│ │ ├── aether_frigid_bluffs.yml
│ │ └── aether_prismatic_ridges.yml
├── colors.yml
├── end
│ ├── amethyst_end.yml
│ ├── aprichorus_plains.yml
│ ├── argil_growth.yml
│ ├── ashen_end.yml
│ ├── cerise_corral.yml
│ ├── choral_deadlands.yml
│ ├── corrupted_wastes.yml
│ ├── craggy_end.yml
│ ├── crying_currents.yml
│ ├── crystal_overhead.yml
│ ├── dark_end.yml
│ ├── dragon-island
│ │ └── main_end.yml
│ ├── forest
│ │ ├── choruve_woods.yml
│ │ ├── crim_desolate.yml
│ │ ├── flaxen_forest.yml
│ │ ├── ivory_empyrean.yml
│ │ ├── mauve_jungle.yml
│ │ └── vermilion_wilds.yml
│ ├── generic
│ │ ├── end_barrens.yml
│ │ ├── end_highlands.yml
│ │ └── end_midlands.yml
│ ├── glimmering_spires.yml
│ ├── marbled_landscapes.yml
│ ├── mushroom
│ │ └── cerulean_expanse.yml
│ ├── rosette_pools.yml
│ ├── shattered
│ │ ├── shattered_end.yml
│ │ └── shattered_forest.yml
│ ├── skewered_cliffs.yml
│ ├── stygian_barrens.yml
│ └── warped
│ │ ├── twisted_grove.yml
│ │ └── warped_woodlands.yml
├── void
│ ├── asteroid_field.yml
│ ├── dragon-island-void
│ │ └── main_end_void.yml
│ ├── galaxy_field.yml
│ ├── starfield.yml
│ ├── void-sea
│ │ ├── void_sea.yml
│ │ └── void_sea_border.yml
│ ├── void.yml
│ ├── void_aurora.yml
│ └── void_webs.yml
└── x-optional
│ └── betterEnd
│ ├── aether.yml
│ ├── aether_forest.yml
│ ├── aether_highlands.yml
│ └── aether_highlands_forest.yml
├── features
├── aether
│ ├── boulders
│ │ ├── mossy_boulders.yml
│ │ └── small_mossy_boulder_patches.yml
│ ├── buildings
│ │ ├── mineshafts
│ │ │ └── mineshafts.yml
│ │ └── ruins
│ │ │ ├── ancient-aether
│ │ │ ├── ancient_aether_tower_bridges.yml
│ │ │ ├── ancient_aether_tower_clouds.yml
│ │ │ └── ancient_aether_towers.yml
│ │ │ ├── fort_ruins.yml
│ │ │ └── tower_ruins.yml
│ ├── ceiling_icicles.yml
│ ├── deposits
│ │ ├── deposits
│ │ │ ├── andesite_deposits.yml
│ │ │ ├── diorite_deposits.yml
│ │ │ ├── dirt_deposits.yml
│ │ │ ├── granite_deposits.yml
│ │ │ ├── gravel_deposits.yml
│ │ │ └── tuff_deposits.yml
│ │ ├── distribution.yml
│ │ └── ores
│ │ │ ├── coal_ore.yml
│ │ │ ├── coal_ore_uniform.yml
│ │ │ ├── copper_ore.yml
│ │ │ ├── diamond_ore.yml
│ │ │ ├── emerald_ore.yml
│ │ │ ├── gold_ore.yml
│ │ │ ├── gold_ore_uniform.yml
│ │ │ ├── iron_ore.yml
│ │ │ ├── iron_ore_high.yml
│ │ │ ├── iron_ore_uniform.yml
│ │ │ ├── lapis_ore.yml
│ │ │ ├── lapis_ore_uniform.yml
│ │ │ ├── redstone_ore.yml
│ │ │ └── redstone_ore_uniform.yml
│ ├── hanging_lanterns.yml
│ ├── misc
│ │ ├── clouds
│ │ │ ├── cloud_river.yml
│ │ │ ├── clouds.yml
│ │ │ └── sky_clouds.yml
│ │ ├── giant_bee_nests.yml
│ │ ├── honey_drips.yml
│ │ └── pseudo-sky
│ │ │ ├── cloud_layer.yml
│ │ │ └── sky_layer.yml
│ ├── sky_water_columns.yml
│ ├── slabs
│ │ ├── slabs.yml
│ │ ├── snow.yml
│ │ └── snow_stone.yml
│ ├── snow_layers.yml
│ ├── tree_snow.yml
│ └── vegetation
│ │ ├── bramble_vines.yml
│ │ ├── brambles.yml
│ │ ├── bushes
│ │ ├── dark_oak_bushes.yml
│ │ ├── oak_bushes.yml
│ │ └── spruce_bushes.yml
│ │ ├── crops
│ │ ├── sweet_berry_bush_patches.yml
│ │ └── wheat_patches.yml
│ │ ├── ferns.yml
│ │ ├── flowers
│ │ ├── blue_flowers.yml
│ │ └── mixed_flower_cover.yml
│ │ ├── grass.yml
│ │ ├── lily_pads.yml
│ │ ├── tall_grass.yml
│ │ └── trees
│ │ ├── azure_trees.yml
│ │ ├── betterEnd
│ │ ├── oak_trees.yml
│ │ ├── sparse_oak_trees.yml
│ │ ├── sparse_spruce_trees.yml
│ │ └── spruce_trees.yml
│ │ ├── crimsic_trees.yml
│ │ ├── frostbite_trees.yml
│ │ ├── orchard_trees.yml
│ │ └── swamp_trees.yml
├── end
│ ├── ashen_columns.yml
│ ├── buildings
│ │ ├── crashed_endships.yml
│ │ ├── end_houses.yml
│ │ ├── end_towers.yml
│ │ ├── endships.yml
│ │ └── shulker_ruins.yml
│ ├── corrupted_whirls.yml
│ ├── craggy_rocks.yml
│ ├── dragon_island
│ │ ├── chains
│ │ │ └── dragon_chains.yml
│ │ ├── endstone_ring
│ │ │ └── endstone_ring.yml
│ │ ├── fountain
│ │ │ ├── fountain_hill.yml
│ │ │ ├── fountain_island.yml
│ │ │ ├── fountain_spikes.yml
│ │ │ ├── fountain_vex_spawner.yml
│ │ │ └── upgraded_fountain.yml
│ │ ├── nebula
│ │ │ ├── nebula_concrete.yml
│ │ │ ├── nebula_glass.yml
│ │ │ └── nebula_obsidian.yml
│ │ ├── obsidian_circlet
│ │ │ ├── obsidian_circlet.yml
│ │ │ └── pillar_circlet.yml
│ │ └── pillars
│ │ │ ├── main_pillars.yml
│ │ │ ├── outer_pillars.yml
│ │ │ ├── pillar_vex_spawner_bottom.yml
│ │ │ └── pillar_vex_spawner_top.yml
│ ├── end_sky.yml
│ ├── giant_amethyst_crystals.yml
│ ├── misc
│ │ ├── crying_drips.yml
│ │ ├── crying_end_glows.yml
│ │ ├── end_gateways.yml
│ │ ├── water_columns.yml
│ │ └── water_pools.yml
│ ├── pillars
│ │ └── shattered_pillars.yml
│ ├── spikes
│ │ ├── crystal_spikes
│ │ │ ├── crystal_spikes.yml
│ │ │ └── crystal_spikes_down.yml
│ │ ├── glowstone_spikes.yml
│ │ └── tipped_obsidian_spikes.yml
│ ├── swirls.yml
│ ├── tendrils
│ │ ├── purple_tendril_down.yml
│ │ ├── purple_tendrils_side.yml
│ │ └── purple_tendrils_up.yml
│ └── vegetation
│ │ ├── apribloons.yml
│ │ ├── argil_vine_spikes.yml
│ │ ├── bushes
│ │ ├── crimson_stem_bushes.yml
│ │ ├── pearlescent_bushes.yml
│ │ ├── stripped_acacia_bushes.yml
│ │ ├── stripped_mangrove_bushes.yml
│ │ └── warped_stem_bushes.yml
│ │ ├── choral_brambles.yml
│ │ ├── grass
│ │ ├── coral_grass.yml
│ │ ├── end_grass.yml
│ │ ├── end_tall_grass.yml
│ │ └── warped_grass.yml
│ │ ├── legged_lanterns.yml
│ │ ├── magenta_coral.yml
│ │ └── trees
│ │ ├── aprichorus_trees.yml
│ │ ├── bulb_trees.yml
│ │ ├── burble_trees.yml
│ │ ├── chorus_trees.yml
│ │ ├── choruve_trees.yml
│ │ ├── corkscrew_trees.yml
│ │ ├── crim_trees.yml
│ │ ├── glowstone_trees.yml
│ │ ├── ivory_trees.yml
│ │ ├── mauve_trees.yml
│ │ ├── mushrooms
│ │ ├── blue_mushrooms.yml
│ │ └── marbled_mushrooms.yml
│ │ ├── rosette_bulb_trees.yml
│ │ ├── shattered_trees.yml
│ │ ├── trap_trees.yml
│ │ ├── vermilion_trees.yml
│ │ └── warped
│ │ ├── twisting_beanstalks.yml
│ │ ├── warped_mangroves.yml
│ │ └── warped_mesquite_trees.yml
├── meta.yml
└── void
│ ├── asteroids.yml
│ ├── aurora.yml
│ ├── galaxys.yml
│ ├── icy_asteroids.yml
│ ├── star_trails.yml
│ ├── void-sea
│ ├── void_sea.yml
│ └── void_sea_air.yml
│ ├── void_webs.yml
│ └── voidstars.yml
├── math
├── README.md
├── functions
│ ├── interpolation.yml
│ ├── lerp.yml
│ ├── maskSmooth.yml
│ └── terrace.yml
└── samplers
│ └── simplex.yml
├── meta.yml
├── pack.yml
├── palettes
├── aether
│ ├── calcite_powder_mix.yml
│ ├── calcite_stone_mix.yml
│ ├── deepslate.yml
│ ├── grass.yml
│ ├── grass_gravel_patches.yml
│ ├── grass_gray_terracotta.yml
│ ├── gray_concrete_terracotta.yml
│ ├── light_gray_powder.yml
│ ├── mud_powder_mix.yml
│ ├── podzol.yml
│ ├── snow.yml
│ ├── stone_cobble_mix.yml
│ ├── terracotta_mix.yml
│ └── yellow_concrete_terracotta.yml
├── end
│ ├── amesthyst_end.yml
│ ├── ashen_end.yml
│ ├── black_gray_terracotta.yml
│ ├── blue_light_terracotta.yml
│ ├── calcite_concrete_mix_end.yml
│ ├── craggy_end.yml
│ ├── crying_currents.yml
│ ├── dark_end.yml
│ ├── dead_coral_ground.yml
│ ├── gray_glimmering_currents.yml
│ ├── mix_end.yml
│ ├── obby_purple_mix.yml
│ ├── powder
│ │ ├── black_powder_end.yml
│ │ ├── blue_powder_end.yml
│ │ ├── cyan_powder_end.yml
│ │ ├── light_gray_powder_end.yml
│ │ ├── lime_powder_end.yml
│ │ ├── magenta_powder_end.yml
│ │ ├── orange_powder_end.yml
│ │ ├── pink_powder_end.yml
│ │ ├── purple_powder_end.yml
│ │ ├── red_powder_end.yml
│ │ ├── white_powder_end.yml
│ │ └── yellow_powder_end.yml
│ ├── purple_terracotta_end.yml
│ ├── shattered_ground.yml
│ └── white_gray_terracotta.yml
└── void
│ ├── asteroid.yml
│ ├── ice_asteroid.yml
│ ├── ice_asteroid_bottom.yml
│ └── ice_asteroid_middle.yml
└── structures
├── aether
├── bee-nests
│ ├── bee_nest.tesf
│ ├── bee_nest_block.tesf
│ ├── giant_bee_nest.tesf
│ ├── gigantic_bee_nest.tesf
│ └── honey_drip.tesf
├── blank.tesf
├── boulders
│ ├── boulder_ores.tesf
│ ├── boulder_palette.tesf
│ ├── boulder_textured.tesf
│ └── small_boulder_textured.tesf
├── buildings
│ ├── mineshaft
│ │ ├── mineshaft_chain.tesf
│ │ ├── mineshaft_procedural_ew.tesf
│ │ ├── mineshaft_procedural_ns.tesf
│ │ ├── place_big_mineshaft.tesf
│ │ └── place_mineshaft.tesf
│ └── ruins
│ │ ├── ancient_aether_tower
│ │ ├── ancient_aether_tower.tesf
│ │ ├── ancient_aether_tower_bridge.tesf
│ │ ├── objects
│ │ │ ├── ore_chunk.tesf
│ │ │ ├── place_random_object.tesf
│ │ │ ├── plant.tesf
│ │ │ ├── ruin_ores.tesf
│ │ │ └── spawner_obelisk.tesf
│ │ ├── rooms
│ │ │ ├── ancient_aether_tower_room_pillars.tesf
│ │ │ ├── ancient_aether_tower_room_pillars_2.tesf
│ │ │ ├── ancient_aether_tower_room_stairs.tesf
│ │ │ ├── ancient_aether_tower_room_tall_halls.tesf
│ │ │ ├── ancient_aether_tower_room_walkways.tesf
│ │ │ └── ancient_aether_tower_room_walkways_2.tesf
│ │ └── windows
│ │ │ └── ancient_aether_tower_door_windows.tesf
│ │ ├── fort_ruin
│ │ ├── fort_ruin.tesf
│ │ ├── ruin_wall.tesf
│ │ └── taller_ruin_wall.tesf
│ │ ├── ruin.tesf
│ │ ├── ruin_block.tesf
│ │ └── tower_ruin.tesf
├── ceiling_icicle.tesf
├── deposits
│ ├── deposits
│ │ ├── abstract_deep_deposit.yml
│ │ ├── abstract_deposit.yml
│ │ ├── andesite_deposit.yml
│ │ ├── diorite_deposit.yml
│ │ ├── dirt_deposit.yml
│ │ ├── granite_deposit.yml
│ │ ├── gravel_deposit.yml
│ │ └── tuff_deposit.yml
│ └── ores
│ │ ├── abstract_ore.yml
│ │ ├── coal_ore.yml
│ │ ├── copper_ore.yml
│ │ ├── copper_ore_large.yml
│ │ ├── diamond_ore.yml
│ │ ├── diamond_ore_large.yml
│ │ ├── diamond_ore_small.yml
│ │ ├── emerald_ore.yml
│ │ ├── gold_ore.yml
│ │ ├── iron_ore.yml
│ │ ├── lapis_ore.yml
│ │ └── redstone_ore.yml
├── hanging_lantern.tesf
├── misc
│ ├── clouds
│ │ ├── cloud.tesf
│ │ └── translucent_cloud.tesf
│ └── sky_water_column.tesf
├── snow_layers.tesf
└── vegetation
│ ├── big_dripleaf.tesf
│ ├── bramble.tesf
│ ├── bushes
│ ├── dark_oak_bush.tesf
│ ├── oak_bush.tesf
│ └── spruce_bush.tesf
│ ├── crops
│ ├── sweet_berry_bush_patch.tesf
│ └── wheat_patch.tesf
│ ├── flowers
│ ├── lilac.tesf
│ ├── peony.tesf
│ ├── rose_bush.tesf
│ └── sunflower.tesf
│ ├── large_fern.tesf
│ ├── place_vines.tesf
│ ├── plantable.tesf
│ ├── tall_grass.tesf
│ └── trees
│ ├── azure_tree.tesf
│ ├── betterEnd
│ ├── large_oak_tree_procedural.tesf
│ ├── large_oak_tree_procedural_2.tesf
│ ├── oak_tree_procedural.tesf
│ └── spruce_tree_procedural.tesf
│ ├── crimsic_tree.tesf
│ ├── frostbite_tree.tesf
│ ├── leaves
│ ├── dark_oak_leaves_clump.tesf
│ ├── oak_leaves_clump.tesf
│ └── orchard_leaves_clump.tesf
│ ├── orchard
│ ├── place_apple.tesf
│ └── small_orchard_tree.tesf
│ └── swamp_tree_procedural.tesf
├── end
├── argil_vine_spikes.tesf
├── ashen_column.tesf
├── buildings
│ ├── crashed-end-ship
│ │ ├── crashed_endship.tesf
│ │ └── schematics
│ │ │ ├── crashed_endship_sc_east.schem
│ │ │ ├── crashed_endship_sc_north.schem
│ │ │ ├── crashed_endship_sc_south.schem
│ │ │ └── crashed_endship_sc_west.schem
│ ├── end_house
│ │ ├── end_house.tesf
│ │ └── schematics
│ │ │ ├── end_house_sc_east.schem
│ │ │ ├── end_house_sc_north.schem
│ │ │ ├── end_house_sc_south.schem
│ │ │ └── end_house_sc_west.schem
│ ├── end_tower
│ │ ├── end_tower.tesf
│ │ └── schematics
│ │ │ ├── end_tower_sc_east.schem
│ │ │ ├── end_tower_sc_north.schem
│ │ │ ├── end_tower_sc_south.schem
│ │ │ └── end_tower_sc_west.schem
│ ├── endship
│ │ ├── endship.tesf
│ │ └── schematics
│ │ │ ├── endship_sc_east.schem
│ │ │ ├── endship_sc_north.schem
│ │ │ ├── endship_sc_south.schem
│ │ │ └── endship_sc_west.schem
│ └── shulker-ruin
│ │ ├── parts
│ │ ├── end_debri_block.tesf
│ │ ├── end_ruin_block.tesf
│ │ └── end_ruin_wall.tesf
│ │ ├── shulker_ruin.tesf
│ │ └── shulker_spawn.tesf
├── corrupted_whirl.tesf
├── craggy_rock.tesf
├── dragon-island
│ ├── chains
│ │ ├── dragon_chain.tesf
│ │ └── vortex.tesf
│ ├── dragon_pillar.tesf
│ ├── fountain
│ │ ├── fountain_hill.tesf
│ │ ├── upgraded_fountain.tesf
│ │ └── upgraded_fountain_sc.schem
│ ├── fountain_island.tesf
│ ├── fountain_spikes.tesf
│ ├── obsidian_spike_cluster.tesf
│ └── vex_spawner
│ │ ├── fountain_vex_spawner.tesf
│ │ ├── pillar_vex_spawner.tesf
│ │ └── schematic
│ │ └── vex_spawner_sc.schem
├── misc
│ ├── amethyst
│ │ ├── amethyst_buds.tesf
│ │ └── giant_amethyst_crystal.tesf
│ ├── apribloon
│ │ ├── apribloon_body.tesf
│ │ └── apribloon_procedural.tesf
│ ├── crying_drip.tesf
│ ├── end-gateways
│ │ ├── end_gateway.schem
│ │ └── place_end_gateway.tesf
│ └── water_column.tesf
├── pillars
│ ├── giant_obsidian_pillar.tesf
│ ├── shattered_pillar_procedural.tesf
│ └── tilted_giant_obsidian_pillar.tesf
├── spikes
│ ├── crystal-spikes
│ │ ├── crystal_spike.tesf
│ │ ├── crystal_spike_cluster.tesf
│ │ ├── crystal_spike_cluster_down.tesf
│ │ └── crystal_spike_down.tesf
│ ├── glowstone_spike.tesf
│ ├── tipped_obsidian_spike.tesf
│ └── tipped_obsidian_spike_cluster.tesf
├── swirl.tesf
├── tendrils
│ ├── purple_tendril_down.tesf
│ ├── purple_tendril_side.tesf
│ └── purple_tendril_up.tesf
└── vegetation
│ ├── bushes
│ ├── pearlescent_bush.tesf
│ ├── stripped_acacia_bush.tesf
│ ├── stripped_mangrove_bush.tesf
│ └── warped_stem_bush.tesf
│ ├── choral_bramble.tesf
│ ├── crimson_stem_bush.tesf
│ ├── mushrooms
│ ├── blue_mushrooms
│ │ ├── blue_mushroom.tesf
│ │ ├── blue_mushroom_cap.tesf
│ │ └── blue_mushroom_cluster.tesf
│ └── marbled_mushrooms
│ │ ├── marbled_mushroom.tesf
│ │ └── marbled_mushroom_cap.tesf
│ └── trees
│ ├── aprichorus_trees
│ ├── aprichorus_tree.tesf
│ ├── aprichorus_tree_branch.tesf
│ ├── aprichorus_tree_bulb.tesf
│ └── aprichorus_tree_spikes.tesf
│ ├── bulb_trees
│ ├── bulb.tesf
│ └── bulb_tree.tesf
│ ├── burble_trees
│ ├── burble_bulb.tesf
│ ├── burble_stems.tesf
│ └── burble_tree.tesf
│ ├── chorus_tree
│ ├── chorus_branches
│ │ ├── chorus_branch_east.tesf
│ │ ├── chorus_branch_north.tesf
│ │ ├── chorus_branch_south.tesf
│ │ └── chorus_branch_west.tesf
│ └── chorus_tree.tesf
│ ├── choruve_trees
│ ├── choruve_leaves_clump.tesf
│ └── choruve_tree.tesf
│ ├── corkscrew_tree_procedural.tesf
│ ├── crim_trees
│ ├── crim_tree.tesf
│ ├── inner_shell.tesf
│ └── outer_shell.tesf
│ ├── drooping_trees
│ ├── drooping_branch_bulb.tesf
│ ├── drooping_side_branch.tesf
│ ├── drooping_top_branch.tesf
│ └── drooping_tree.tesf
│ ├── glowstone_trees.tesf
│ ├── ivory_trees
│ ├── ivory_clump.tesf
│ ├── ivory_vine.tesf
│ ├── large_ivory_tree.tesf
│ └── small_ivory_tree.tesf
│ ├── legged_lantern.tesf
│ ├── magenta-coral
│ ├── magenta_strand.tesf
│ └── magenta_strand_cluster.tesf
│ ├── mauve_trees
│ ├── large_mauve_tree.tesf
│ └── small_mauve_tree.tesf
│ ├── rosette_bulb_trees
│ ├── rosette_bulb.tesf
│ ├── rosette_bulb_branch.tesf
│ └── rosette_bulb_tree.tesf
│ ├── shattered_trees
│ ├── large_shattered_tree.tesf
│ ├── shattered_leaves_clump.tesf
│ └── small_shattered_tree.tesf
│ ├── trap_tree
│ ├── trap_tree.tesf
│ ├── trap_tree_mouth.tesf
│ └── trap_tree_small_mouth.tesf
│ └── warped
│ ├── twisting_beanstalk.tesf
│ ├── twisting_leaf.tesf
│ ├── twisting_vines.tesf
│ ├── warped_mangrove
│ ├── warped_buds.tesf
│ ├── warped_mangrove_tree_procedural.tesf
│ └── warped_wart_clump.tesf
│ └── warped_mesquite_tree_procedural.tesf
├── is_leaf.tesf
├── is_rock.tesf
└── void
├── asteroids
├── asteroid.tesf
├── asteroid_ores.tesf
├── asteroid_palette.tesf
└── icy-asteroid
│ ├── icy_asteroid.tesf
│ ├── icy_asteroid_palette.tesf
│ └── spiky_ice_asteroid.tesf
├── aurora
├── blue_aurora_segment.tesf
├── cyan_aurora_segment.tesf
├── green_aurora_segment.tesf
├── light_blue_aurora_segment.tesf
├── lime_aurora_segment.tesf
├── magenta_aurora_segment.tesf
├── pink_aurora_segment.tesf
├── purple_aurora_segment.tesf
├── red_aurora_segment.tesf
└── yellow_aurora_segment.tesf
├── galaxies
├── horizontal_galaxy.tesf
└── vertical_galaxy.tesf
└── voidstars
├── voidstar_a.tesf
├── voidstar_b.tesf
├── voidstar_c.tesf
├── voidstar_d.tesf
├── voidstar_e.tesf
├── voidstar_f.tesf
└── voidstar_g.tesf
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/packs.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/biome-providers/presets/single.yml:
--------------------------------------------------------------------------------
1 | biomes:
2 | type: SINGLE
3 | biome: STARFIELD
4 |
--------------------------------------------------------------------------------
/biome-providers/sources/aether.yml:
--------------------------------------------------------------------------------
1 | source:
2 | type: SAMPLER
3 | biomes:
4 | - aether: 1
5 | sampler:
6 | type: CELLULAR
7 | return: CellValue
8 | frequency: 1 / ${meta.yml:biome-distribution.aether-biome-scale} / ${meta.yml:biome-distribution.global-scale}
9 | salt: 6579
--------------------------------------------------------------------------------
/biome-providers/sources/betterend.yml:
--------------------------------------------------------------------------------
1 | source:
2 | type: SAMPLER
3 | biomes:
4 | - betterEnd: 1
5 | - MAIN_END_VOID: 2
6 | - MAIN_END: 1
7 | sampler:
8 | type: EXPRESSION
9 | expression: |
10 | circle(centerRadius, x+noise(x,z)-1, z+noise(x,z)-1, 1) + circle(centerRadius+buffer, x+noise(x,z)-1, z+noise(x,z)-1, 0.5)
11 | variables:
12 | centerRadius: ${meta.yml:biome-distribution.main-end-scale}
13 | buffer: ${meta.yml:biome-distribution.void-buffer-scale}
14 | functions:
15 | circle: {arguments: [r, x, z, l], expression: "if(x*x+z*z>r*r,-1,l)"}
16 | samplers:
17 | noise:
18 | type: OPEN_SIMPLEX_2
19 | dimensions: 2
20 | salt: 3912
21 | frequency: 0.1
--------------------------------------------------------------------------------
/biome-providers/sources/reimagEND.yml:
--------------------------------------------------------------------------------
1 | source:
2 | type: SAMPLER
3 | biomes:
4 | - outer_end: 1
5 | - MAIN_END_VOID: 2
6 | - MAIN_END: 1
7 | sampler:
8 | type: EXPRESSION
9 | expression: |
10 | circle(centerRadius, x+noise(x,z)-1, z+noise(x,z)-1, 1) + circle(centerRadius+buffer, x+noise(x,z)-1, z+noise(x,z)-1, 0.5)
11 | variables:
12 | centerRadius: ${meta.yml:biome-distribution.main-end-scale}
13 | buffer: ${meta.yml:biome-distribution.void-buffer-scale}
14 | functions:
15 | circle: {arguments: [r, x, z, l], expression: "if(x*x+z*z>r*r,-1,l)"}
16 | samplers:
17 | noise:
18 | type: OPEN_SIMPLEX_2
19 | dimensions: 2
20 | salt: 3912
21 | frequency: 0.1
--------------------------------------------------------------------------------
/biome-providers/sources/vanilla.yml:
--------------------------------------------------------------------------------
1 | source:
2 | type: SAMPLER
3 | biomes:
4 | - vanilla_end: 1
5 | - MAIN_END_VOID: 2
6 | - MAIN_END: 1
7 | sampler:
8 | type: EXPRESSION
9 | expression: |
10 | circle(centerRadius, x+noise(x,z)-1, z+noise(x,z)-1, 1) + circle(centerRadius+buffer, x+noise(x,z)-1, z+noise(x,z)-1, 0.5)
11 | variables:
12 | centerRadius: ${meta.yml:biome-distribution.main-end-scale}
13 | buffer: ${meta.yml:biome-distribution.void-buffer-scale}
14 | functions:
15 | circle: {arguments: [r, x, z, l], expression: "if(x*x+z*z>r*r,-1,l)"}
16 | samplers:
17 | noise:
18 | type: OPEN_SIMPLEX_2
19 | dimensions: 2
20 | salt: 3912
21 | frequency: 0.1
--------------------------------------------------------------------------------
/biome-providers/stages/add_border_biomes.yml:
--------------------------------------------------------------------------------
1 | stages:
2 | - type: BORDER
3 | sampler:
4 | type: CONSTANT
5 | replace: VOID_SEA
6 | from: NOT_VOID_SEA
7 | to: VOID_SEA_BORDER
8 | - type: BORDER
9 | sampler:
10 | type: CONSTANT
11 | replace: ANCIENT_AETHER
12 | from: AETHER
13 | to: AETHER_CLOUD_SEA
--------------------------------------------------------------------------------
/biome-providers/stages/base-distribution/optional/vanilla_distribution.yml:
--------------------------------------------------------------------------------
1 | stages:
2 | - type: REPLACE
3 | sampler:
4 | dimensions: 2
5 | type: FBM
6 | octaves: 2
7 | sampler:
8 | type: OPEN_SIMPLEX_2
9 | salt: 6836
10 | frequency: 1 / ${meta.yml:biome-distribution.frontier-biome-scale} / ${meta.yml:biome-distribution.global-scale}
11 | from: vanilla_end
12 | to:
13 | - VOID: 3
14 | - END_BARRENS: 1
15 | - END_MIDLANDS: 2
16 | - END_HIGHLANDS: 2
17 |
18 |
--------------------------------------------------------------------------------
/biome-providers/stages/dragon_pit.yml:
--------------------------------------------------------------------------------
1 | distribution-map: &distribution-map
2 | type: EXPRESSION
3 | expression: |
4 | circle(radius, x-1, z-1, 1)
5 | variables:
6 | radius: ${meta.yml:dragon-island.dragon-pit-radius}
7 | functions:
8 | circle: {arguments: [r, x, z, l], expression: "if(x*x+z*z 0, -1, 1)
22 | variables:
23 | toggle: ${meta.yml:dragon-island.dragon-chains-toggle}
24 |
25 |
26 | locator:
27 | type: AND
28 | locators:
29 | - type: TOP
30 | range: &range
31 | min: 40
32 | max: 80
33 | pattern:
34 | type: MATCH_SOLID
35 | offset: -1
36 |
37 | structures:
38 | distribution:
39 | type: CONSTANT
40 | structures: dragon_chain
--------------------------------------------------------------------------------
/features/end/dragon_island/fountain/fountain_hill.yml:
--------------------------------------------------------------------------------
1 | id: FOUNTAIN_HILL
2 | type: FEATURE
3 |
4 | # Mound of endstone that end fountain spawns on top of
5 |
6 | distributor:
7 | type: POINTS
8 | points:
9 | - x: 0
10 | z: 0
11 |
12 | locator:
13 | type: AND
14 | locators:
15 | - type: TOP
16 | range: &range
17 | min: 40
18 | max: 319
19 | - type: PATTERN
20 | range: *range
21 | pattern:
22 | type: MATCH_SOLID
23 | offset: -1
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 |
30 | structures:
31 | distribution:
32 | type: CONSTANT
33 | structures: fountain_hill
--------------------------------------------------------------------------------
/features/end/dragon_island/fountain/fountain_island.yml:
--------------------------------------------------------------------------------
1 | id: FOUNTAIN_ISLAND
2 | type: FEATURE
3 |
4 | # Mound of endstone that end fountain spawns on top of
5 |
6 | distributor:
7 | type: POINTS
8 | points:
9 | - x: 0
10 | z: 0
11 | - x: 62
12 | z: 0
13 | - x: 53
14 | z: 44
15 | - x: 12
16 | z: 59
17 | - x: -12
18 | z: 59
19 | - x: -53
20 | z: 44
21 | - x: -62
22 | z: 0
23 | - x: -53
24 | z: -44
25 | - x: -12
26 | z: -59
27 | - x: 12
28 | z: -59
29 | - x: 53
30 | z: -44
31 |
32 | locator:
33 | type: AND
34 | locators:
35 | - type: RANDOM
36 | height: &range
37 | min: 55
38 | max: 65
39 | amount: 1
40 | - type: PATTERN
41 | range: *range
42 | pattern:
43 | type: MATCH_AIR
44 | offset: 0
45 |
46 | structures:
47 | distribution:
48 | type: CONSTANT
49 | structures: fountain_island
--------------------------------------------------------------------------------
/features/end/dragon_island/fountain/fountain_spikes.yml:
--------------------------------------------------------------------------------
1 | id: FOUNTAIN_SPIKES
2 | type: FEATURE
3 |
4 | # Rib cage like spikes surrounding fountain
5 |
6 | distributor:
7 | type: POINTS
8 | points:
9 | - x: 0
10 | z: 0
11 |
12 | locator:
13 | type: AND
14 | locators:
15 | - type: TOP
16 | range: &range
17 | min: 0
18 | max: 80
19 | pattern:
20 | type: MATCH_SOLID
21 | offset: -1
22 |
23 | structures:
24 | distribution:
25 | type: CONSTANT
26 | structures: fountain_spikes
--------------------------------------------------------------------------------
/features/end/dragon_island/fountain/fountain_vex_spawner.yml:
--------------------------------------------------------------------------------
1 | id: FOUNTAIN_VEX_SPAWNER
2 | type: FEATURE
3 |
4 | # Rib cage like spikes surrounding fountain
5 |
6 | distributor:
7 | type: AND
8 | distributors:
9 | - type: POINTS
10 | points:
11 | - x: 0
12 | z: 0
13 | - type: SAMPLER
14 | sampler:
15 | type: EXPRESSION
16 | expression: |
17 | if (toggle > 0, -1, 1)
18 | variables:
19 | toggle: ${meta.yml:dragon-island.fountain-vex-toggle}
20 |
21 | locator:
22 | type: AND
23 | locators:
24 | - type: TOP
25 | range: &range
26 | min: 0
27 | max: 80
28 | pattern:
29 | type: MATCH_SOLID
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: fountain_vex_spawner
--------------------------------------------------------------------------------
/features/end/dragon_island/fountain/upgraded_fountain.yml:
--------------------------------------------------------------------------------
1 | id: UPGRADED_FOUNTAIN
2 | type: FEATURE
3 |
4 | # Mound of endstone that end fountain spawns on top of
5 |
6 | distributor:
7 | type: POINTS
8 | points:
9 | - x: 0
10 | z: 0
11 |
12 | locator:
13 | type: AND
14 | locators:
15 | - type: TOP
16 | range: &range
17 | min: 40
18 | max: 319
19 | - type: PATTERN
20 | range: *range
21 | pattern:
22 | type: MATCH_SOLID
23 | offset: -1
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 |
30 | structures:
31 | distribution:
32 | type: CONSTANT
33 | structures: upgraded_fountain
--------------------------------------------------------------------------------
/features/end/dragon_island/pillars/main_pillars.yml:
--------------------------------------------------------------------------------
1 | id: MAIN_PILLARS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: POINTS
6 | points:
7 | - x: 62
8 | z: 0
9 | - x: 53
10 | z: 44
11 | - x: 12
12 | z: 59
13 | - x: -12
14 | z: 59
15 | - x: -53
16 | z: 44
17 | - x: -62
18 | z: 0
19 | - x: -53
20 | z: -44
21 | - x: -12
22 | z: -59
23 | - x: 12
24 | z: -59
25 | - x: 53
26 | z: -44
27 |
28 |
29 | locator:
30 | type: AND
31 | locators:
32 | - type: TOP
33 | range: &range
34 | min: 0
35 | max: 70
36 | pattern:
37 | type: MATCH_AIR
38 | offset: 0
39 | - type: PATTERN
40 | range: *range
41 | pattern:
42 | type: MATCH_SOLID
43 | offset: -1
44 |
45 | structures:
46 | distribution:
47 | type: CONSTANT
48 | structures: dragon_pillar
--------------------------------------------------------------------------------
/features/end/giant_amethyst_crystals.yml:
--------------------------------------------------------------------------------
1 | id: GIANT_AMETHYST_CRYSTALS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 8756
9 | threshold: 0.1
10 |
11 | locator:
12 | type: AND
13 | locators:
14 | - type: TOP
15 | range: &range
16 | min: 0
17 | max: 319
18 | - type: PATTERN
19 | range: *range
20 | pattern:
21 | type: MATCH
22 | block: minecraft:amethyst_block
23 | offset: -1
24 |
25 | structures:
26 | distribution:
27 | type: CONSTANT
28 | structures: giant_amethyst_crystal
29 |
--------------------------------------------------------------------------------
/features/end/misc/crying_drips.yml:
--------------------------------------------------------------------------------
1 | id: CRYING_DRIPS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 7652
9 | threshold: 0.09
10 |
11 | locator:
12 | type: AND
13 | locators:
14 | - type: PATTERN
15 | range: &range
16 | min: 0
17 | max: 255
18 | pattern:
19 | type: MATCH_AIR
20 | offset: 0
21 | - type: PATTERN
22 | range: *range
23 | pattern:
24 | type: MATCH
25 | block: minecraft:purple_concrete
26 | offset: 1
27 |
28 | structures:
29 | distribution:
30 | type: CONSTANT
31 | structures: crying_drip
32 |
33 |
--------------------------------------------------------------------------------
/features/end/misc/water_columns.yml:
--------------------------------------------------------------------------------
1 | id: WATER_COLUMNS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 6012
9 | threshold: 0.5/8
10 |
11 | locator:
12 | type: PATTERN
13 | range:
14 | min: 0
15 | max: 280
16 | pattern:
17 | # Match air on top of lava
18 | type: AND
19 | patterns:
20 | - type: MATCH
21 | block: minecraft:water
22 | offset: -1
23 | - type: MATCH_AIR
24 | offset: 0
25 |
26 | structures:
27 | distribution:
28 | type: CONSTANT
29 | structures: water_column
--------------------------------------------------------------------------------
/features/end/pillars/shattered_pillars.yml:
--------------------------------------------------------------------------------
1 | id: SHATTERED_PILLARS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 6821
9 | threshold: 0.003
10 |
11 | locator:
12 | type: AND
13 | locators:
14 | - type: SURFACE
15 | range: &range
16 | min: 40
17 | max: 319
18 | - type: PATTERN
19 | range: *range
20 | pattern:
21 | type: MATCH
22 | block: minecraft:end_stone
23 | offset: -1
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 |
30 | structures:
31 | distribution:
32 | type: WHITE_NOISE
33 | structures:
34 | - shattered_pillar_procedural: 150
35 | - giant_obsidian_pillar: 2
36 | - tilted_giant_obsidian_pillar: 1
--------------------------------------------------------------------------------
/features/end/spikes/glowstone_spikes.yml:
--------------------------------------------------------------------------------
1 | id: GLOWSTONE_SPIKES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 100
7 | padding: 9
8 | salt: 2552
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 60
16 | max: 255
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH
26 | block: minecraft:black_concrete_powder
27 | offset: -1
28 |
29 |
30 | structures:
31 | distribution:
32 | type: CONSTANT
33 | structures:
34 | - glowstone_spike: 1
--------------------------------------------------------------------------------
/features/end/spikes/tipped_obsidian_spikes.yml:
--------------------------------------------------------------------------------
1 | id: TIPPED_OBSIDIAN_SPIKES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 7
7 | padding: 9
8 | salt: 3247
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 60
16 | max: 255
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH
26 | block: minecraft:end_stone
27 | offset: -1
28 |
29 |
30 | structures:
31 | distribution:
32 | type: CONSTANT
33 | structures:
34 | - tipped_obsidian_spike: 4
35 | - tipped_obsidian_spike_cluster: 1
36 |
--------------------------------------------------------------------------------
/features/end/tendrils/purple_tendril_down.yml:
--------------------------------------------------------------------------------
1 | id: PURPLE_TENDRILS_DOWN
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 18
7 | padding: 11
8 | salt: 7905
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: PATTERN
14 | range: &range
15 | min: 0
16 | max: 319
17 | pattern:
18 | type: MATCH
19 | block: minecraft:purple_concrete
20 | offset: 1
21 | - type: PATTERN
22 | range: *range
23 | pattern:
24 | type: MATCH_AIR
25 | offset: 0
26 | - type: PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH_SOLID
30 | offset: 5
31 | - type: PATTERN
32 | range: *range
33 | pattern:
34 | type: MATCH_AIR
35 | offset: -10
36 |
37 | structures:
38 | distribution:
39 | type: CONSTANT
40 | structures: purple_tendril_down
--------------------------------------------------------------------------------
/features/end/tendrils/purple_tendrils_side.yml:
--------------------------------------------------------------------------------
1 | id: PURPLE_TENDRILS_SIDE
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 16
7 | padding: 12
8 | salt: 5467
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: PATTERN
14 | range: &range
15 | min: 0
16 | max: 319
17 | pattern:
18 | type: MATCH
19 | block: minecraft:purple_concrete
20 | offset: 0
21 | - type: ADJACENT_PATTERN
22 | range: *range
23 | pattern:
24 | type: MATCH_AIR
25 | offset: 0
26 | - type: ADJACENT_PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH_AIR
30 | offset: 2
31 | - type: ADJACENT_PATTERN
32 | range: *range
33 | pattern:
34 | type: MATCH_AIR
35 | offset: -2
36 |
37 | structures:
38 | distribution:
39 | type: CONSTANT
40 | structures: purple_tendril_side
--------------------------------------------------------------------------------
/features/end/tendrils/purple_tendrils_up.yml:
--------------------------------------------------------------------------------
1 | id: PURPLE_TENDRILS_UP
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 16
7 | padding: 12
8 | salt: 5467
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH
21 | block: minecraft:purple_concrete
22 | offset: -1
23 | - type: PATTERN
24 | range: *range
25 | pattern:
26 | type: MATCH_AIR
27 | offset: 0
28 | - type: PATTERN
29 | range: *range
30 | pattern:
31 | type: MATCH_SOLID
32 | offset: -5
33 | - type: PATTERN
34 | range: *range
35 | pattern:
36 | type: MATCH_AIR
37 | offset: 10
38 |
39 | structures:
40 | distribution:
41 | type: CONSTANT
42 | structures: purple_tendril_up
--------------------------------------------------------------------------------
/features/end/vegetation/bushes/pearlescent_bushes.yml:
--------------------------------------------------------------------------------
1 | id: PEARLESCENT_BUSHES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 7
7 | padding: 2
8 | salt: 3246
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: OR
21 | patterns:
22 | - type: MATCH_SET
23 | blocks: $features/meta.yml:end-plantable-blocks
24 | offset: -1
25 | - type: MATCH_SET
26 | blocks:
27 | - minecraft:sand
28 | - minecraft:red_sand
29 | offset: -1
30 | - type: PATTERN
31 | range: *range
32 | pattern:
33 | type: MATCH_SET
34 | blocks:
35 | - minecraft:snow
36 | - minecraft:air
37 | offset: 0
38 |
39 | structures:
40 | distribution:
41 | type: CONSTANT
42 | structures: pearlescent_bush
--------------------------------------------------------------------------------
/features/end/vegetation/bushes/warped_stem_bushes.yml:
--------------------------------------------------------------------------------
1 | id: WARPED_STEM_BUSHES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 7
7 | padding: 2
8 | salt: 9152
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: OR
21 | patterns:
22 | - type: MATCH_SET
23 | blocks: $features/meta.yml:end-plantable-blocks
24 | offset: -1
25 | - type: MATCH_SET
26 | blocks:
27 | - minecraft:sand
28 | - minecraft:red_sand
29 | offset: -1
30 | - type: PATTERN
31 | range: *range
32 | pattern:
33 | type: MATCH_SET
34 | blocks:
35 | - minecraft:snow
36 | - minecraft:air
37 | offset: 0
38 |
39 | structures:
40 | distribution:
41 | type: CONSTANT
42 | structures: warped_stem_bush
--------------------------------------------------------------------------------
/features/end/vegetation/choral_brambles.yml:
--------------------------------------------------------------------------------
1 | id: CHORAL_BRAMBLES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: SAMPLER
8 | sampler:
9 | type: CELLULAR
10 | return: CellValue
11 | frequency: 0.05
12 | salt: 3425
13 | threshold: -0.4
14 | - type: SAMPLER
15 | sampler:
16 | type: POSITIVE_WHITE_NOISE
17 | salt: 6579
18 | threshold: 0.05
19 |
20 | locator:
21 | type: AND
22 | locators:
23 | - type: SURFACE
24 | range: &range
25 | min: 0
26 | max: 225
27 | - type: PATTERN
28 | range: *range
29 | pattern:
30 | type: MATCH_SOLID
31 | offset: -1
32 |
33 | structures:
34 | distribution:
35 | type: CONSTANT
36 | structures: choral_bramble
--------------------------------------------------------------------------------
/features/end/vegetation/grass/end_grass.yml:
--------------------------------------------------------------------------------
1 | id: END_GRASS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 7544
9 | threshold: 0.125
10 |
11 | locator:
12 | type: AND
13 | locators:
14 | - type: SURFACE
15 | range: &range
16 | min: 0
17 | max: 319
18 | - type: PATTERN
19 | range: *range
20 | pattern:
21 | type: MATCH_SET
22 | blocks: $features/meta.yml:end-plantable-blocks
23 | offset: -1
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH
28 | block: minecraft:end_stone
29 | offset: -2
30 |
31 | structures:
32 | distribution:
33 | type: WHITE_NOISE
34 | structures:
35 | - BLOCK:minecraft:short_grass: 6
36 | - tall_grass: 1
--------------------------------------------------------------------------------
/features/end/vegetation/grass/warped_grass.yml:
--------------------------------------------------------------------------------
1 | id: WARPED_GRASS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: SAMPLER
6 | sampler:
7 | type: POSITIVE_WHITE_NOISE
8 | salt: 4689
9 | threshold: 0.1
10 |
11 | locator:
12 | type: PATTERN
13 | range:
14 | min: 0
15 | max: 319
16 | pattern:
17 | type: AND
18 | patterns:
19 | - type: MATCH_SET
20 | blocks: $features/meta.yml:end-plantable-blocks
21 | offset: -1
22 | - type: MATCH_AIR
23 | offset: 0
24 | - type: MATCH
25 | block: minecraft:end_stone
26 | offset: -2
27 |
28 |
29 | structures:
30 | distribution:
31 | type: WHITE_NOISE
32 | structures:
33 | - BLOCK:minecraft:nether_sprouts: 5
34 | - BLOCK:minecraft:warped_roots: 2
35 | - twisting_vines: 2
--------------------------------------------------------------------------------
/features/end/vegetation/legged_lanterns.yml:
--------------------------------------------------------------------------------
1 | id: LEGGED_LANTERNS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 34
7 | padding: 25
8 | salt: 5467
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 235
17 | amount: 1
18 | - type: PATTERN
19 | range: *range
20 | pattern:
21 | type: MATCH
22 | block: minecraft:end_stone
23 | offset: -5
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 | - type: PATTERN
30 | range: *range
31 | pattern:
32 | type: MATCH_AIR
33 | offset: 10
34 |
35 | structures:
36 | distribution:
37 | type: CONSTANT
38 | structures: legged_lantern
--------------------------------------------------------------------------------
/features/end/vegetation/magenta_coral.yml:
--------------------------------------------------------------------------------
1 | id: MAGENTA_CORAL
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 20
7 | padding: 8
8 | salt: 4357
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 235
17 | amount: 1
18 | - type: PATTERN
19 | range: *range
20 | pattern:
21 | type: MATCH
22 | block: minecraft:end_stone
23 | offset: -5
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 | - type: PATTERN
30 | range: *range
31 | pattern:
32 | type: MATCH_AIR
33 | offset: 5
34 |
35 | structures:
36 | distribution:
37 | type: CONSTANT
38 | structures: magenta_strand_cluster
--------------------------------------------------------------------------------
/features/end/vegetation/trees/aprichorus_trees.yml:
--------------------------------------------------------------------------------
1 | id: APRICHORUS_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 14
7 | padding: 7
8 | salt: 4357
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_SET
21 | blocks:
22 | - minecraft:end_stone
23 | offset: -1
24 | - type: PATTERN
25 | range: *range
26 | pattern:
27 | type: MATCH_AIR
28 | offset: 0
29 | - type: ADJACENT_PATTERN
30 | range: *range
31 | pattern:
32 | type: MATCH_SOLID
33 | offset: -1
34 |
35 | structures:
36 | distribution:
37 | type: CONSTANT
38 | structures: aprichorus_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/bulb_trees.yml:
--------------------------------------------------------------------------------
1 | id: BULB_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 27
7 | padding: 18
8 | salt: 5468
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:light_gray_concrete
28 | - minecraft:light_gray_concrete_powder
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: bulb_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/chorus_trees.yml:
--------------------------------------------------------------------------------
1 | id: CHORUS_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 7
7 | padding: 4
8 | salt: 4355
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH
21 | block: minecraft:end_stone
22 | offset: -1
23 |
24 | structures:
25 | distribution:
26 | type: CONSTANT
27 | structures: chorus_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/choruve_trees.yml:
--------------------------------------------------------------------------------
1 | id: CHORUVE_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 6
9 | padding: 12
10 | salt: 1320
11 | - type: SAMPLER
12 | sampler:
13 | type: PROBABILITY
14 | sampler:
15 | type: OPEN_SIMPLEX_2
16 | salt: 1156
17 | threshold: 0.75
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: TOP
23 | range: &range
24 | min: 0
25 | max: 319
26 | - type: PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH_SET
30 | blocks:
31 | - minecraft:light_blue_terracotta
32 | - minecraft:blue_terracotta
33 | - minecraft:end_stone
34 | offset: -1
35 |
36 | structures:
37 | distribution:
38 | type: CONSTANT
39 | structures: choruve_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/crim_trees.yml:
--------------------------------------------------------------------------------
1 | id: CRIM_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 17
7 | padding: 6
8 | salt: 4357
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:purple_terracotta
28 | - minecraft:magenta_terracotta
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: crim_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/glowstone_trees.yml:
--------------------------------------------------------------------------------
1 | id: GLOWSTONE_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 3
9 | padding: 4
10 | salt: 2514
11 | - type: SAMPLER
12 | sampler:
13 | type: CELLULAR
14 | return: CellValue
15 | frequency: 0.06
16 | salt: 1285
17 | threshold: -0.9
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: TOP
23 | range: &range
24 | min: 0
25 | max: 255
26 | - type: PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH_AIR
30 | offset: 0
31 | - type: PATTERN
32 | range: *range
33 | pattern:
34 | type: MATCH
35 | block: minecraft:black_concrete_powder
36 | offset: -1
37 |
38 | structures:
39 | distribution:
40 | type: WHITE_NOISE
41 | structures:
42 | - glowstone_trees: 1
--------------------------------------------------------------------------------
/features/end/vegetation/trees/mauve_trees.yml:
--------------------------------------------------------------------------------
1 | id: MAUVE_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 16
7 | padding: 7
8 | salt: 6578
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:purple_concrete_powder
28 | - minecraft:purple_concrete
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: WHITE_NOISE
35 | structures:
36 | - small_mauve_tree: 3
37 | - large_mauve_tree: 1
--------------------------------------------------------------------------------
/features/end/vegetation/trees/rosette_bulb_trees.yml:
--------------------------------------------------------------------------------
1 | id: ROSETTE_BULB_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 13
7 | padding: 11
8 | salt: 7778
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:pink_concrete_powder
28 | - minecraft:pink_concrete_powder
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: rosette_bulb_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/shattered_trees.yml:
--------------------------------------------------------------------------------
1 | id: SHATTERED_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 8
7 | padding: 6
8 | salt: 4678
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH
21 | block: minecraft:end_stone
22 | offset: -1
23 | - type: PATTERN
24 | range: *range
25 | pattern:
26 | type: MATCH
27 | block: minecraft:end_stone
28 | offset: -3
29 |
30 | structures:
31 | distribution:
32 | type: WHITE_NOISE
33 | structures:
34 | - small_shattered_tree: 5
35 | - large_shattered_tree: 1
--------------------------------------------------------------------------------
/features/end/vegetation/trees/trap_trees.yml:
--------------------------------------------------------------------------------
1 | id: TRAP_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 27
7 | padding: 16
8 | salt: 4568
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:magenta_concrete
28 | - minecraft:magenta_concrete_powder
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: trap_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/vermilion_trees.yml:
--------------------------------------------------------------------------------
1 | id: VERMILION_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 24
7 | padding: 15
8 | salt: 4357
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:red_concrete
28 | - minecraft:red_concrete_powder
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: drooping_tree
--------------------------------------------------------------------------------
/features/end/vegetation/trees/warped/twisting_beanstalks.yml:
--------------------------------------------------------------------------------
1 | id: TWISTING_BEANSTALKS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 9
9 | padding: 4
10 | salt: 1124
11 | - type: SAMPLER
12 | sampler:
13 | type: PROBABILITY
14 | sampler:
15 | type: OPEN_SIMPLEX_2
16 | salt: 6667
17 | threshold: 0.6
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: TOP
23 | range: &range
24 | min: 0
25 | max: 319
26 | - type: PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH
30 | block: minecraft:end_stone
31 | offset: -1
32 |
33 | structures:
34 | distribution:
35 | type: CONSTANT
36 | structures: twisting_beanstalk
--------------------------------------------------------------------------------
/features/end/vegetation/trees/warped/warped_mangroves.yml:
--------------------------------------------------------------------------------
1 | id: WARPED_MANGROVES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 14
7 | padding: 6
8 | salt: 3330
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_SET
21 | blocks:
22 | - minecraft:light_blue_concrete_powder
23 | - minecraft:cyan_concrete_powder
24 | - minecraft:end_stone
25 | offset: -1
26 | - type: PATTERN
27 | range: *range
28 | pattern:
29 | type: MATCH_AIR
30 | offset: 0
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: warped_mangrove_tree_procedural
--------------------------------------------------------------------------------
/features/end/vegetation/trees/warped/warped_mesquite_trees.yml:
--------------------------------------------------------------------------------
1 | id: WARPED_MESQUITE_TREES
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 6
7 | padding: 2
8 | salt: 1249
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: TOP
14 | range: &range
15 | min: 0
16 | max: 319
17 | - type: PATTERN
18 | range: *range
19 | pattern:
20 | type: MATCH_AIR
21 | offset: 0
22 | - type: PATTERN
23 | range: *range
24 | pattern:
25 | type: MATCH_SET
26 | blocks:
27 | - minecraft:light_blue_concrete_powder
28 | - minecraft:cyan_concrete_powder
29 | - minecraft:end_stone
30 | offset: -1
31 |
32 | structures:
33 | distribution:
34 | type: CONSTANT
35 | structures: warped_mesquite_tree_procedural
--------------------------------------------------------------------------------
/features/void/asteroids.yml:
--------------------------------------------------------------------------------
1 | id: ASTEROIDS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 10
9 | padding: 8
10 | salt: 3214
11 | - type: SAMPLER
12 | sampler:
13 | type: CELLULAR
14 | return: CellValue
15 | frequency: 0.05
16 | salt: 8344
17 | threshold: -0.01
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: RANDOM
23 | height: &range
24 | min: 25
25 | max: 125
26 | amount: 1
27 | salt: 1276
28 | - type: PATTERN
29 | range: *range
30 | pattern:
31 | type: MATCH_AIR
32 | offset: 0
33 |
34 | structures:
35 | distribution:
36 | type: CONSTANT
37 | structures: asteroid
38 |
--------------------------------------------------------------------------------
/features/void/galaxys.yml:
--------------------------------------------------------------------------------
1 | id: GALAXYS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: PADDED_GRID
6 | width: 24
7 | padding: 14
8 | salt: 8772
9 |
10 | locator:
11 | type: AND
12 | locators:
13 | - type: RANDOM
14 | height: &range
15 | min: 0
16 | max: 225
17 | amount: 1
18 | salt: 2913
19 | - type: PATTERN
20 | range: *range
21 | pattern:
22 | type: MATCH_AIR
23 | offset: 0
24 |
25 | structures:
26 | distribution:
27 | type: WHITE_NOISE
28 | structures:
29 | - vertical_galaxy: 1
30 | - horizontal_galaxy: 1
--------------------------------------------------------------------------------
/features/void/icy_asteroids.yml:
--------------------------------------------------------------------------------
1 | id: ICY_ASTEROIDS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 8
9 | padding: 10
10 | salt: 9367
11 | - type: SAMPLER
12 | sampler:
13 | type: CELLULAR
14 | return: CellValue
15 | frequency: 0.05
16 | salt: 5428
17 | threshold: -0.01
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: RANDOM
23 | height: &range
24 | min: 125
25 | max: 215
26 | amount: 1
27 | salt: 2346
28 | - type: PATTERN
29 | range: *range
30 | pattern:
31 | type: MATCH_AIR
32 | offset: 0
33 |
34 | structures:
35 | distribution:
36 | type: WHITE_NOISE
37 | structures:
38 | - icy_asteroid: 5
39 | - spiky_ice_asteroid: 1
40 |
--------------------------------------------------------------------------------
/features/void/void-sea/void_sea_air.yml:
--------------------------------------------------------------------------------
1 | id: VOID_SEA_AIR
2 | type: FEATURE
3 |
4 | distributor:
5 | type: "YES"
6 |
7 | locator:
8 | type: PATTERN
9 | range: &range
10 | min: 0
11 | max: 255
12 | pattern:
13 | type: MATCH_AIR
14 | offset: 0
15 |
16 | structures:
17 | distribution:
18 | type: CONSTANT
19 | structures: BLOCK:minecraft:light[level=0]
20 |
21 |
--------------------------------------------------------------------------------
/features/void/voidstars.yml:
--------------------------------------------------------------------------------
1 | id: VOIDSTARS
2 | type: FEATURE
3 |
4 | distributor:
5 | type: AND
6 | distributors:
7 | - type: PADDED_GRID
8 | width: 8
9 | padding: 6
10 | salt: 7115
11 | - type: SAMPLER
12 | sampler:
13 | type: CELLULAR
14 | return: CellValue
15 | frequency: 0.05
16 | salt: 6541
17 | threshold: -0.4
18 |
19 | locator:
20 | type: AND
21 | locators:
22 | - type: RANDOM
23 | height: &range
24 | min: 0
25 | max: 225
26 | amount: 1
27 | salt: 2913
28 | - type: PATTERN
29 | range: *range
30 | pattern:
31 | type: MATCH_AIR
32 | offset: 0
33 |
34 | structures:
35 | distribution:
36 | type: WHITE_NOISE
37 | structures:
38 | - voidstar_a: 1
39 | - voidstar_b: 1
40 | - voidstar_c: 1
41 | - voidstar_d: 1
42 | - voidstar_e: 1
43 | - voidstar_f: 1
44 | - voidstar_g: 1
--------------------------------------------------------------------------------
/math/README.md:
--------------------------------------------------------------------------------
1 | # Math
2 |
3 | This directory contains commonly used mathematical functions and noise samplers,
4 | with the intent of being utilized globally across the entire pack. These
5 | functions and samplers are defined in their own files for the sake of
6 | organization, and are injected into the pack manifest, rather than being
7 | directly defined in it.
8 |
9 | Things are only defined here if they are commonplace across different
10 | configurations, more specific single application functions and samplers should
11 | be defined where they are used instead of here.
12 |
--------------------------------------------------------------------------------
/math/functions/lerp.yml:
--------------------------------------------------------------------------------
1 | functions:
2 | lerp:
3 | # Linear interpolation between two values
4 | arguments:
5 | - t
6 | - at # Value of t where output = a
7 | - a
8 | - bt # Value of t where output = b
9 | - b
10 | # Values of t between at and bt will be interpolated
11 | expression: |
12 | if(at=bt,b,a*(t-bt)/(at-bt)+b*(t-at)/(bt-at))),
14 | if(t>=at,a,if(t<=bt,b,a*(t-bt)/(at-bt)+b*(t-at)/(bt-at)))
15 | )
--------------------------------------------------------------------------------
/math/functions/maskSmooth.yml:
--------------------------------------------------------------------------------
1 | functions:
2 | maskSmooth:
3 | # Ramp function from 0 to value, typically used to mask a noise function by another
4 | arguments:
5 | - v # Value
6 | - lb # When mask <= lb, returns 0
7 | - ub # When mask >= ub, returns v
8 | # Otherwise, output is interpolated between 0 and v using a hermite curve
9 | - m # Mask, typically a noise function
10 | expression: |
11 | if(lb=ub,v,v*hermite((m-lb)/(ub-lb)))),
13 | if(m>=lb,0,if(m<=ub,v,v*hermite((m-lb)/(ub-lb))))
14 | )
15 | functions:
16 | hermite:
17 | arguments: [x]
18 | expression: 3*x^2-2*x^3
--------------------------------------------------------------------------------
/math/samplers/simplex.yml:
--------------------------------------------------------------------------------
1 | samplers:
2 | simplex:
3 | dimensions: 2
4 | type: FBM
5 | octaves: 4
6 | sampler:
7 | type: OPEN_SIMPLEX_2
8 | frequency: 0.0075
9 | simplex3:
10 | dimensions: 3
11 | type: FBM
12 | octaves: 4
13 | sampler:
14 | type: OPEN_SIMPLEX_2
15 | frequency: 0.0075
16 |
--------------------------------------------------------------------------------
/palettes/aether/deepslate.yml:
--------------------------------------------------------------------------------
1 | id: DEEPSLATE
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:deepslate: 10
7 | - minecraft:cobbled_deepslate: 5
8 | - minecraft:smooth_basalt: 3
9 | layers: 1
10 | sampler:
11 | type: DOMAIN_WARP
12 | amplitude: 1
13 | warp:
14 | type: GAUSSIAN
15 | sampler:
16 | type: FBM
17 | octaves: 2
18 | sampler:
19 | type: OPEN_SIMPLEX_2
20 | frequency: 0.2
21 | salt: 293
22 |
--------------------------------------------------------------------------------
/palettes/aether/grass.yml:
--------------------------------------------------------------------------------
1 | id: GRASS
2 | type: PALETTE
3 |
4 | layers:
5 | - materials: minecraft:grass_block
6 | layers: 1
7 | - materials: minecraft:dirt
8 | layers: 3
9 | - materials:
10 | - minecraft:stone: 10
11 | - minecraft:cobblestone: 5
12 | - minecraft:mossy_cobblestone: 3
13 | layers: 1
14 | sampler:
15 | type: DOMAIN_WARP
16 | amplitude: 1
17 | warp:
18 | type: GAUSSIAN
19 | sampler:
20 | type: FBM
21 | octaves: 2
22 | sampler:
23 | type: OPEN_SIMPLEX_2
24 | frequency: 0.2
25 | salt: 293
--------------------------------------------------------------------------------
/palettes/aether/grass_gravel_patches.yml:
--------------------------------------------------------------------------------
1 | id: GRASS_GRAVEL_PATCHES
2 |
3 | type: PALETTE
4 |
5 | layers:
6 | - materials:
7 | - minecraft:grass_block: 5
8 | - minecraft:gravel: 2
9 | layers: 1
10 | sampler:
11 | type: DOMAIN_WARP
12 | amplitude: 1
13 | warp:
14 | type: GAUSSIAN
15 | sampler:
16 | type: FBM
17 | octaves: 2
18 | sampler:
19 | type: OPEN_SIMPLEX_2
20 | frequency: 0.05
21 | salt: 4246
22 | - materials: minecraft:dirt
23 | layers: 3
24 | - materials:
25 | - minecraft:stone: 10
26 | - minecraft:cobblestone: 5
27 | - minecraft:mossy_cobblestone: 3
28 | layers: 1
29 | sampler:
30 | type: DOMAIN_WARP
31 | amplitude: 1
32 | warp:
33 | type: GAUSSIAN
34 | sampler:
35 | type: FBM
36 | octaves: 2
37 | sampler:
38 | type: OPEN_SIMPLEX_2
39 | frequency: 0.2
40 | salt: 293
--------------------------------------------------------------------------------
/palettes/aether/gray_concrete_terracotta.yml:
--------------------------------------------------------------------------------
1 | id: GRAY_CONCRETE_TERRACOTTA
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:cyan_terracotta: 3
7 | - minecraft:gray_concrete: 2
8 | layers: 8
9 | sampler:
10 | type: DOMAIN_WARP
11 | amplitude: 1
12 | warp:
13 | type: GAUSSIAN
14 | sampler:
15 | type: FBM
16 | octaves: 2
17 | sampler:
18 | type: OPEN_SIMPLEX_2
19 | frequency: 0.04
20 | salt: 5467
21 | - materials:
22 | - minecraft:stone: 10
23 | - minecraft:cobblestone: 5
24 | - minecraft:mossy_cobblestone: 3
25 | layers: 1
26 | sampler:
27 | type: DOMAIN_WARP
28 | amplitude: 1
29 | warp:
30 | type: GAUSSIAN
31 | sampler:
32 | type: FBM
33 | octaves: 2
34 | sampler:
35 | type: OPEN_SIMPLEX_2
36 | frequency: 0.2
37 | salt: 293
38 |
--------------------------------------------------------------------------------
/palettes/aether/light_gray_powder.yml:
--------------------------------------------------------------------------------
1 | id: LIGHT_GRAY_POWDER
2 |
3 | type: PALETTE
4 |
5 | layers:
6 | - materials:
7 | - minecraft:light_gray_concrete_powder: 3
8 | layers: 2
9 | sampler:
10 | type: DOMAIN_WARP
11 | amplitude: 10
12 | warp:
13 | type: GAUSSIAN
14 | sampler:
15 | type: FBM
16 | octaves: 2
17 | sampler:
18 | type: OPEN_SIMPLEX_2
19 | frequency: 0.03
20 | salt: 4356
21 | - materials:
22 | - minecraft:stone: 10
23 | - minecraft:cobblestone: 5
24 | - minecraft:mossy_cobblestone: 3
25 | layers: 1
26 | sampler:
27 | type: DOMAIN_WARP
28 | amplitude: 1
29 | warp:
30 | type: GAUSSIAN
31 | sampler:
32 | type: FBM
33 | octaves: 2
34 | sampler:
35 | type: OPEN_SIMPLEX_2
36 | frequency: 0.05
37 | salt: 293
--------------------------------------------------------------------------------
/palettes/aether/podzol.yml:
--------------------------------------------------------------------------------
1 | id: PODZOL
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:grass_block: 4
7 | - minecraft:coarse_dirt: 1
8 | - minecraft:podzol: 1
9 | - minecraft:gravel: 2
10 | layers: 1
11 | sampler:
12 | type: DOMAIN_WARP
13 | amplitude: 1
14 | warp:
15 | type: GAUSSIAN
16 | sampler:
17 | type: FBM
18 | octaves: 2
19 | sampler:
20 | type: OPEN_SIMPLEX_2
21 | frequency: 0.2
22 | salt: 293
23 | - materials:
24 | - minecraft:dirt: 1
25 | layers: 2
26 | - materials:
27 | - minecraft:stone: 10
28 | - minecraft:cobblestone: 5
29 | - minecraft:mossy_cobblestone: 3
30 | layers: 1
31 | sampler:
32 | type: DOMAIN_WARP
33 | amplitude: 1
34 | warp:
35 | type: GAUSSIAN
36 | sampler:
37 | type: FBM
38 | octaves: 2
39 | sampler:
40 | type: OPEN_SIMPLEX_2
41 | frequency: 0.2
42 | salt: 293
43 |
--------------------------------------------------------------------------------
/palettes/aether/stone_cobble_mix.yml:
--------------------------------------------------------------------------------
1 | id: STONE_COBBLE_MIX
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:stone: 10
7 | - minecraft:cobblestone: 5
8 | - minecraft:mossy_cobblestone: 3
9 | layers: 1
10 | sampler:
11 | type: DOMAIN_WARP
12 | amplitude: 1
13 | warp:
14 | type: GAUSSIAN
15 | sampler:
16 | type: FBM
17 | octaves: 2
18 | sampler:
19 | type: OPEN_SIMPLEX_2
20 | frequency: 0.2
21 | salt: 293
--------------------------------------------------------------------------------
/palettes/end/amesthyst_end.yml:
--------------------------------------------------------------------------------
1 | id: AMETHYST_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:calcite: 6
7 | - minecraft:diorite: 3
8 | - minecraft:smooth_basalt: 2
9 | - minecraft:obsidian: 6
10 | - minecraft:crying_obsidian: 3
11 | - minecraft:amethyst_block: 5
12 | layers: 1
13 | sampler:
14 | type: DOMAIN_WARP
15 | amplitude: 1
16 | warp:
17 | type: GAUSSIAN
18 | sampler:
19 | type: FBM
20 | octaves: 2
21 | sampler:
22 | type: OPEN_SIMPLEX_2
23 | frequency: 0.04
24 | salt: 6881
25 |
26 |
27 |
--------------------------------------------------------------------------------
/palettes/end/ashen_end.yml:
--------------------------------------------------------------------------------
1 | id: ASHEN_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:gray_concrete_powder: 1
7 | layers: 2
8 | sampler:
9 | dimensions: 2
10 | type: DOMAIN_WARP
11 | warp:
12 | type: WHITE_NOISE
13 | sampler:
14 | type: CELLULAR
15 | frequency: 0.1
16 | return: CellValue
17 | - materials:
18 | - minecraft:smooth_basalt: 1
19 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/black_gray_terracotta.yml:
--------------------------------------------------------------------------------
1 | id: BLACK_GRAY_TERRACOTTA
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:black_terracotta: 1
7 | - minecraft:gray_terracotta: 1
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
--------------------------------------------------------------------------------
/palettes/end/blue_light_terracotta.yml:
--------------------------------------------------------------------------------
1 | id: BLUE_LIGHT_TERRACOTTA
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:light_blue_terracotta: 1
7 | - minecraft:blue_terracotta: 1
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/calcite_concrete_mix_end.yml:
--------------------------------------------------------------------------------
1 | id: CALCITE_CONCRETE_MIX_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:end_stone: 10
7 | - minecraft:white_concrete: 5
8 | - minecraft:white_concrete_powder: 5
9 | - minecraft:calcite: 5
10 | layers: 1
11 | sampler:
12 | type: WHITE_NOISE
13 | amplitude: 1
14 | warp:
15 | type: "OPEN_SIMPLEX_2"
16 | frequency: 0.9
17 | sampler:
18 | type: FBM
19 | octaves: 2
20 | sampler:
21 | type: "CELLULAR"
22 | return: "CellValue"
23 | frequency: 0.5
24 | salt: 9345
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/palettes/end/craggy_end.yml:
--------------------------------------------------------------------------------
1 | id: CRAGGY_END
2 |
3 | type: PALETTE
4 |
5 | layers:
6 | - materials:
7 | - minecraft:end_stone: 8
8 | - minecraft:deepslate: 3
9 | - minecraft:cobbled_deepslate: 2
10 | - minecraft:mud: 1
11 | layers: 2
12 | sampler:
13 | type: DOMAIN_WARP
14 | amplitude: 1
15 | warp:
16 | type: GAUSSIAN
17 | sampler:
18 | type: FBM
19 | octaves: 2
20 | sampler:
21 | type: OPEN_SIMPLEX_2
22 | frequency: 0.1
23 | salt: 4246
24 | - materials:
25 | - minecraft:end_stone: 1
26 | layers: 1
27 | sampler:
28 | type: DOMAIN_WARP
29 | amplitude: 1
30 | warp:
31 | type: GAUSSIAN
32 | sampler:
33 | type: FBM
34 | octaves: 2
35 | sampler:
36 | type: OPEN_SIMPLEX_2
37 | frequency: 0.2
38 | salt: 293
--------------------------------------------------------------------------------
/palettes/end/crying_currents.yml:
--------------------------------------------------------------------------------
1 | id: CRYING_CURRENTS
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:black_concrete_powder: 10
7 | - minecraft:black_concrete: 3
8 | - minecraft:obsidian: 1
9 | - minecraft:crying_obsidian: 1
10 | - minecraft:purple_concrete: 1
11 | - minecraft:purple_concrete_powder: 1
12 | - minecraft:purple_concrete: 1
13 | - minecraft:crying_obsidian: 1
14 | - minecraft:obsidian: 1
15 | - minecraft:black_concrete: 3
16 | - minecraft:black_concrete_powder: 10
17 | layers: 1
18 | sampler:
19 | type: DOMAIN_WARP
20 | amplitude: 2
21 | warp:
22 | type: GAUSSIAN
23 | sampler:
24 | type: FBM
25 | octaves: 2
26 | sampler:
27 | type: OPEN_SIMPLEX_2
28 | frequency: 0.01
29 | salt: 6881
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/palettes/end/dark_end.yml:
--------------------------------------------------------------------------------
1 | id: DARK_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:black_concrete_powder: 1
7 | layers: 2
8 | - materials:
9 | - minecraft:blackstone: 1
10 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/dead_coral_ground.yml:
--------------------------------------------------------------------------------
1 | id: DEAD_CORAL_GROUND
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:dead_tube_coral_block: 1
7 | - minecraft:dead_brain_coral_block: 1
8 | - minecraft:dead_bubble_coral_block: 1
9 | - minecraft:dead_fire_coral_block: 1
10 | - minecraft:dead_horn_coral_block: 1
11 | layers: 1
12 | sampler:
13 | type: WHITE_NOISE
14 | salt: 3457
15 | threshold: 0.5
16 |
--------------------------------------------------------------------------------
/palettes/end/gray_glimmering_currents.yml:
--------------------------------------------------------------------------------
1 | id: GRAY_GLIMMERING_CURRENTS
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:end_stone: 35
7 | - minecraft:gray_concrete: 4
8 | - minecraft:cyan_terracotta: 2
9 | - minecraft:pearlescent_froglight: 1
10 | - minecraft:cyan_terracotta: 2
11 | - minecraft:gray_concrete: 4
12 | - minecraft:end_stone: 35
13 | layers: 1
14 | sampler:
15 | type: DOMAIN_WARP
16 | amplitude: 1
17 | warp:
18 | type: GAUSSIAN
19 | sampler:
20 | type: FBM
21 | octaves: 2
22 | sampler:
23 | type: OPEN_SIMPLEX_2
24 | frequency: 0.01
25 | salt: 6579
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/palettes/end/mix_end.yml:
--------------------------------------------------------------------------------
1 | id: MIX_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:obsidian: 3
7 | - minecraft:crying_obsidian: 1
8 | - minecraft:black_stained_glass: 2
9 | - minecraft:purple_stained_glass: 2
10 | - minecraft:magenta_stained_glass: 2
11 | - minecraft:black_concrete: 3
12 | - minecraft:purple_concrete: 3
13 | layers: 1
14 | sampler:
15 | type: DOMAIN_WARP
16 | amplitude: 1
17 | warp:
18 | type: GAUSSIAN
19 | sampler:
20 | type: FBM
21 | octaves: 2
22 | sampler:
23 | type: OPEN_SIMPLEX_2
24 | frequency: 0.2
25 | salt: 7690
26 |
--------------------------------------------------------------------------------
/palettes/end/powder/black_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: BLACK_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:black_concrete_powder: 3
7 | - minecraft:end_stone: 1
8 | - minecraft:black_concrete: 2
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/blue_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: BLUE_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:blue_concrete_powder: 3
7 | - minecraft:blue_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/cyan_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: CYAN_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:cyan_concrete_powder: 3
7 | - minecraft:cyan_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/light_gray_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: LIGHT_GRAY_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:light_gray_concrete_powder: 3
7 | - minecraft:light_gray_concrete: 2
8 | - minecraft:end_stone: 5
9 | layers: 1
10 | sampler:
11 | type: WHITE_NOISE
12 | amplitude: 1
13 | warp:
14 | type: "OPEN_SIMPLEX_2"
15 | frequency: 0.9
16 | sampler:
17 | type: FBM
18 | octaves: 2
19 | sampler:
20 | type: "CELLULAR"
21 | return: "CellValue"
22 | frequency: 0.5
23 | salt: 9345
--------------------------------------------------------------------------------
/palettes/end/powder/lime_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: LIME_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:lime_concrete_powder: 3
7 | - minecraft:lime_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/magenta_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: MAGENTA_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:magenta_concrete_powder: 3
7 | - minecraft:end_stone: 1
8 | - minecraft:magenta_concrete: 2
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/orange_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: ORANGE_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:orange_concrete_powder: 3
7 | - minecraft:orange_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/pink_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: PINK_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:pink_concrete_powder: 3
7 | - minecraft:pink_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/purple_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: PURPLE_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:purple_concrete_powder: 3
7 | - minecraft:purple_concrete: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/red_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: RED_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:red_concrete_powder: 3
7 | - minecraft:end_stone: 1
8 | - minecraft:red_concrete: 2
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/white_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: WHITE_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:white_concrete: 3
7 | - minecraft:end_stone: 1
8 | - minecraft:white_concrete_powder: 2
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/powder/yellow_powder_end.yml:
--------------------------------------------------------------------------------
1 | id: YELLOW_POWDER_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:yellow_concrete_powder: 3
7 | - minecraft:end_stone: 1
8 | - minecraft:yellow_concrete: 2
9 | layers: 1
10 | sampler:
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/purple_terracotta_end.yml:
--------------------------------------------------------------------------------
1 | id: PURPLE_TERRACOTTA_END
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:purple_terracotta: 3
7 | - minecraft:magenta_terracotta: 2
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
14 | - materials:
15 | - minecraft:end_stone: 1
16 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/shattered_ground.yml:
--------------------------------------------------------------------------------
1 | id: SHATTERED_GROUND
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:air: 1
7 | - minecraft:end_stone: 1
8 | layers: 1
9 | sampler: &transitionSampler
10 | type: WHITE_NOISE
11 | salt: 4357
12 | threshold: 0.5
13 | - materials:
14 | - minecraft:end_stone: 1
15 | layers: 1
--------------------------------------------------------------------------------
/palettes/end/white_gray_terracotta.yml:
--------------------------------------------------------------------------------
1 | id: WHITE_GRAY_TERRACOTTA
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:white_terracotta: 1
7 | - minecraft:light_gray_terracotta: 1
8 | - minecraft:end_stone: 1
9 | layers: 1
10 | sampler: &transitionSampler
11 | type: WHITE_NOISE
12 | salt: 4357
13 | threshold: 0.5
--------------------------------------------------------------------------------
/palettes/void/asteroid.yml:
--------------------------------------------------------------------------------
1 | id: ASTEROID
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:basalt: 2
7 | - minecraft:smooth_basalt: 3
8 | - minecraft:mud: 1
9 | - minecraft:deepslate: 4
10 | layers: 1
11 | sampler:
12 | type: WHITE_NOISE
13 | salt: 4357
14 | threshold: 0.5
--------------------------------------------------------------------------------
/palettes/void/ice_asteroid.yml:
--------------------------------------------------------------------------------
1 | id: ICE_ASTEROID
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:ice: 6
7 | - minecraft:packed_ice: 9
8 | - minecraft:blue_ice: 3
9 | - minecraft:basalt: 2
10 | - minecraft:smooth_basalt: 3
11 | - minecraft:mud: 1
12 | - minecraft:deepslate: 4
13 | layers: 1
14 | sampler:
15 | type: WHITE_NOISE
16 | salt: 4357
17 | threshold: 0.5
--------------------------------------------------------------------------------
/palettes/void/ice_asteroid_bottom.yml:
--------------------------------------------------------------------------------
1 | id: ICE_ASTEROID_BOTTOM
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:ice: 2
7 | - minecraft:packed_ice: 3
8 | - minecraft:blue_ice: 1
9 | - minecraft:basalt: 14
10 | - minecraft:smooth_basalt: 11
11 | - minecraft:mud: 8
12 | - minecraft:deepslate: 17
13 | layers: 1
14 | sampler:
15 | type: WHITE_NOISE
16 | salt: 4357
17 | threshold: 0.5
--------------------------------------------------------------------------------
/palettes/void/ice_asteroid_middle.yml:
--------------------------------------------------------------------------------
1 | id: ICE_ASTEROID_MIDDLE
2 | type: PALETTE
3 |
4 | layers:
5 | - materials:
6 | - minecraft:ice: 4
7 | - minecraft:packed_ice: 5
8 | - minecraft:blue_ice: 3
9 | - minecraft:basalt: 7
10 | - minecraft:smooth_basalt: 10
11 | - minecraft:mud: 4
12 | - minecraft:deepslate: 13
13 | layers: 1
14 | sampler:
15 | type: WHITE_NOISE
16 | salt: 4357
17 | threshold: 0.5
--------------------------------------------------------------------------------
/structures/aether/bee-nests/bee_nest.tesf:
--------------------------------------------------------------------------------
1 | num dir = randomInt(4);
2 | num x = 0;
3 | num z = 0;
4 | str face = "west";
5 |
6 | if (dir == 0) {
7 | face = "west";
8 | x = -1;
9 | z = 0;
10 | } else if (dir == 1) {
11 | face = "north";
12 | x = 0;
13 | z = -1;
14 | } else if (dir == 2) {
15 | face = "east";
16 | x = 1;
17 | z = 0;
18 | } else if (dir == 3) {
19 | face = "south";
20 | x = 0;
21 | z = 1;
22 | }
23 |
24 | block(x, 0, z, "minecraft:bee_nest[facing=" + face + "]");
25 | entity(-2, 0, 0, "minecraft:bee");
26 | entity(-2, 0, 0, "minecraft:bee");
27 | entity(-2, 0, 0, "minecraft:bee");
28 |
29 |
--------------------------------------------------------------------------------
/structures/aether/bee-nests/bee_nest_block.tesf:
--------------------------------------------------------------------------------
1 | if (getBlock(0,0,0) != "minecraft:air") fail;
2 |
3 | str direction = "west";
4 | num randomDir = randomInt(4);
5 | num randomHon = randomInt(6);
6 |
7 | if (randomDir == 0) {
8 | direction = "west";
9 | } else if (randomDir == 1) {
10 | direction = "east";
11 | } else if (randomDir == 2) {
12 | direction = "south";
13 | } else if (randomDir == 3) {
14 | direction = "north";
15 | }
16 |
17 | block(0,0,0,"minecraft:bee_nest[facing="+ direction +",honey_level="+ randomHon +"]", false);
--------------------------------------------------------------------------------
/structures/aether/bee-nests/honey_drip.tesf:
--------------------------------------------------------------------------------
1 | num length = 2 + randomInt(4);
2 | str setBlock = "minecraft:honey_block";
3 |
4 | for (num y = 0; y < length; y = y + 1) {
5 |
6 | if ( (getBlock(0, -y, 0)) != "minecraft:air") fail;
7 |
8 | block(0, -y, 0, setBlock);
9 | }
--------------------------------------------------------------------------------
/structures/aether/blank.tesf:
--------------------------------------------------------------------------------
1 | // No op
2 | return;
--------------------------------------------------------------------------------
/structures/aether/boulders/boulder_ores.tesf:
--------------------------------------------------------------------------------
1 | num blockSelection = randomInt(34);
2 | if(blockSelection <= 27) structure(0, 0, 0, "boulder_palette", "NONE");
3 | else if(blockSelection <= 32) block(0, 0, 0,"minecraft:coal_ore");
4 | else if(blockSelection <= 33) block(0, 0, 0,"minecraft:iron_ore");
--------------------------------------------------------------------------------
/structures/aether/boulders/boulder_palette.tesf:
--------------------------------------------------------------------------------
1 | num blockSelection = randomInt(1000)/1000;
2 | if (blockSelection <= 0.7) block(0, 0, 0,"minecraft:stone");
3 | else if (blockSelection <= 0.8) block(0, 0, 0,"minecraft:andesite");
4 | else if (blockSelection <= 0.9) block(0, 0, 0,"minecraft:mossy_cobblestone");
5 | else block(0, 0, 0,"minecraft:tuff");
--------------------------------------------------------------------------------
/structures/aether/buildings/mineshaft/place_mineshaft.tesf:
--------------------------------------------------------------------------------
1 | num random = randomInt(4);
2 |
3 | if (random == 0) structure(0,0,0, "mineshaft_procedural_ew", "NONE");
4 | if (random == 1) structure(0,0,0, "mineshaft_procedural_ew", "CW_180");
5 | if (random == 2) structure(0,0,0, "mineshaft_procedural_ns", "NONE");
6 | if (random == 3) structure(0,0,0, "mineshaft_procedural_ns", "CW_180");
7 |
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/ancient_aether_tower/objects/place_random_object.tesf:
--------------------------------------------------------------------------------
1 | num random = randomInt(6);
2 |
3 | if (getBlock(0,-1,0) == "minecraft:air") fail;
4 | if (random == 3) structure(0,0,0,"spawner_obelisk","NONE");
5 | if (random == 4) structure(0,0,0,"plant","NONE");
6 | if (random == 5) structure(0,0,0,"ore_chunk","NONE");
7 |
8 |
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/ancient_aether_tower/objects/plant.tesf:
--------------------------------------------------------------------------------
1 | num length = 2+randomInt(3);
2 |
3 | block(0, 0, 0, "minecraft:moss_block", false);
4 | block(0, 1, 0, "minecraft:azalea", false);
5 |
6 | for (num y = 2; y < length; y = y + 1) {
7 | if (y < length) {
8 | block(0, y, 0, "minecraft:moss_block", false);
9 | }
10 | }
11 |
12 | structure(1, 0, 0, "ruin_block", "NONE");
13 | structure(-1, 0, 0, "ruin_block", "NONE");
14 | structure(1, 0, 1, "ruin_block", "NONE");
15 | structure(0, 0, -1, "ruin_block", "NONE");
16 |
17 | structure(1, 0, 1, "ruin_block", "NONE");
18 | structure(-1, 0, 1, "ruin_block", "NONE");
19 | structure(1, 0, -1, "ruin_block", "NONE");
20 | structure(-1, 0, -1, "ruin_block", "NONE");
21 |
22 |
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/ancient_aether_tower/objects/ruin_ores.tesf:
--------------------------------------------------------------------------------
1 |
2 | num diamondWeight = 5;
3 | num emeraldWeight = 10;
4 | num redstoneWeight = 15;
5 | num goldWeight = 20;
6 | num ironWeight = 30;
7 | num coalWeight = 40;
8 |
9 | num random = randomInt(diamondWeight+emeraldWeight+redstoneWeight+goldWeight+ironWeight+coalWeight);
10 |
11 | if (random < diamondWeight) {
12 | block(0,0,0,"minecraft:diamond_ore");
13 | } else if (random < emeraldWeight) {
14 | block(0,0,0,"minecraft:emerald_ore");
15 | } else if (random <= redstoneWeight) {
16 | block(0,0,0,"minecraft:redstone_ore");
17 | } else if (random <= goldWeight) {
18 | block(0,0,0,"minecraft:gold_ore");
19 | } else if (random <= ironWeight) {
20 | block(0,0,0,"minecraft:iron_ore");
21 | } else {
22 | block(0,0,0,"minecraft:coal_ore");
23 | }
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/ancient_aether_tower/rooms/ancient_aether_tower_room_tall_halls.tesf:
--------------------------------------------------------------------------------
1 | num length = 20;
2 | num width = 8;
3 | num wallWidth = 2;
4 |
5 | str setBlock = "ruin_block";
6 |
7 | num random = randomInt(4);
8 | for (num y = 0; y < length; y = y + 1) {
9 | for (num x = -width-wallWidth; x <= width+wallWidth; x = x + 1) {
10 | for (num z = -width-wallWidth; z <= width+wallWidth; z = z + 1) {
11 | if (!(x > -5 && x < 5) &&
12 | !(z > -5 && z < 5)) structure(x, y, z, setBlock, "NONE");
13 |
14 | // next floor
15 | if (y == 0) structure(x, length, z, setBlock, "NONE");
16 | }
17 | }
18 | }
19 |
20 | structure(0, 1, 0, "place_random_object", "NONE");
21 |
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/fort_ruin/ruin_wall.tesf:
--------------------------------------------------------------------------------
1 | num height = 8+randomInt(5);
2 | num checkHeight = 15;
3 |
4 | num yTranslate = 0;
5 | bool valid = false;
6 |
7 | for(num h = 0; h < checkHeight; h = h + 1) {
8 | if(getBlock(0, -h, 0) != "minecraft:grass" &&
9 | getBlock(0, -h, 0) != "minecraft:air" &&
10 | getBlock(0, -h, 0) != "minecraft:oak_leaves") {
11 | yTranslate = -h;
12 | valid = true;
13 | break;
14 | }
15 | }
16 |
17 | if (!valid) fail;
18 |
19 | for(num y = 0; y < height; y = y + 1) {
20 | structure(0,y+yTranslate,0,"ruin_block","NONE");
21 | }
--------------------------------------------------------------------------------
/structures/aether/buildings/ruins/fort_ruin/taller_ruin_wall.tesf:
--------------------------------------------------------------------------------
1 | num height = 18+randomInt(5);
2 | num checkHeight = 15;
3 |
4 | num yTranslate = 0;
5 | bool valid = false;
6 |
7 | for(num h = 0; h < checkHeight; h = h + 1) {
8 | if(getBlock(0, -h, 0) != "minecraft:grass" &&
9 | getBlock(0, -h, 0) != "minecraft:air" &&
10 | getBlock(0, -h, 0) != "minecraft:oak_leaves") {
11 | yTranslate = -h;
12 | valid = true;
13 | break;
14 | }
15 | }
16 |
17 | if (!valid) fail;
18 |
19 | for(num y = 0; y < height; y = y + 1) {
20 | structure(0,y+yTranslate,0,"ruin_block","NONE");
21 | }
--------------------------------------------------------------------------------
/structures/aether/ceiling_icicle.tesf:
--------------------------------------------------------------------------------
1 | num length = 2 + randomInt(4);
2 | str setBlock = "minecraft:packed_ice";
3 |
4 | if (randomInt(4) == 0) setBlock = "minecraft:blue_ice";
5 |
6 | for (num y = 0; y < length; y = y + 1) {
7 |
8 | if ( (getBlock(0, -y, 0)) != "minecraft:air") fail;
9 |
10 | block( 0, -y, 0, setBlock);
11 | }
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/abstract_deep_deposit.yml:
--------------------------------------------------------------------------------
1 | id: ABSTRACT_DEEP_DEPOSIT
2 | type: ORE
3 | abstract: true
4 | extends: ABSTRACT_DEPOSIT
5 |
6 | replace:
7 | - minecraft:stone
8 | - minecraft:deepslate
9 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/abstract_deposit.yml:
--------------------------------------------------------------------------------
1 | id: ABSTRACT_DEPOSIT
2 | type: ORE
3 | abstract: true
4 |
5 | replace:
6 | - minecraft:stone
7 | - minecraft:cobblestone
8 | - minecraft:mossy_cobblestone
9 | size: 32
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/andesite_deposit.yml:
--------------------------------------------------------------------------------
1 | id: ANDESITE_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEPOSIT
4 |
5 | material: minecraft:andesite
6 |
7 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/diorite_deposit.yml:
--------------------------------------------------------------------------------
1 | id: DIORITE_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEPOSIT
4 |
5 | material: minecraft:diorite
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/dirt_deposit.yml:
--------------------------------------------------------------------------------
1 | id: DIRT_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEPOSIT
4 |
5 | material: minecraft:dirt
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/granite_deposit.yml:
--------------------------------------------------------------------------------
1 | id: GRANITE_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEPOSIT
4 |
5 | material: minecraft:granite
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/gravel_deposit.yml:
--------------------------------------------------------------------------------
1 | id: GRAVEL_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEEP_DEPOSIT
4 |
5 | material: minecraft:gravel
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/deposits/tuff_deposit.yml:
--------------------------------------------------------------------------------
1 | id: TUFF_DEPOSIT
2 | type: ORE
3 | extends: ABSTRACT_DEEP_DEPOSIT
4 |
5 | material: minecraft:tuff
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/abstract_ore.yml:
--------------------------------------------------------------------------------
1 | id: ABSTRACT_ORE
2 | type: ORE
3 | abstract: true
4 |
5 | replace:
6 | - minecraft:stone
7 | - minecraft:cobblestone
8 | - minecraft:mossy_cobblestone
9 |
10 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/coal_ore.yml:
--------------------------------------------------------------------------------
1 | id: COAL_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:coal_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_coal_ore
9 |
10 | size: 17
11 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/copper_ore.yml:
--------------------------------------------------------------------------------
1 | id: COPPER_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:copper_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_copper_ore
9 |
10 | size: 10
11 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/copper_ore_large.yml:
--------------------------------------------------------------------------------
1 | id: COPPER_ORE_LARGE
2 | type: ORE
3 | extends: COPPER_ORE
4 |
5 | size: 20
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/diamond_ore.yml:
--------------------------------------------------------------------------------
1 | id: DIAMOND_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:diamond_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_diamond_ore
9 |
10 | size: 8
11 |
12 | exposed: 0.2
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/diamond_ore_large.yml:
--------------------------------------------------------------------------------
1 | id: DIAMOND_ORE_LARGE
2 | type: ORE
3 | extends: DIAMOND_ORE
4 |
5 | size: 12
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/diamond_ore_small.yml:
--------------------------------------------------------------------------------
1 | id: DIAMOND_ORE_SMALL
2 | type: ORE
3 | extends: DIAMOND_ORE
4 |
5 | size: 4
6 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/emerald_ore.yml:
--------------------------------------------------------------------------------
1 | id: EMERALD_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:emerald_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_emerald_ore
9 |
10 | size: 3
11 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/gold_ore.yml:
--------------------------------------------------------------------------------
1 | id: GOLD_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:gold_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_gold_ore
9 |
10 | size: 9
11 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/iron_ore.yml:
--------------------------------------------------------------------------------
1 | id: IRON_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:iron_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_iron_ore
9 |
10 | size: 9
11 |
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/lapis_ore.yml:
--------------------------------------------------------------------------------
1 | id: LAPIS_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:lapis_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_lapis_ore
9 |
10 | size: 7
11 |
12 | exposed: 0.2
--------------------------------------------------------------------------------
/structures/aether/deposits/ores/redstone_ore.yml:
--------------------------------------------------------------------------------
1 | id: REDSTONE_ORE
2 | type: ORE
3 | extends: ABSTRACT_ORE
4 |
5 | material: minecraft:redstone_ore
6 |
7 | material-overrides:
8 | minecraft:deepslate: minecraft:deepslate_redstone_ore
9 |
10 | size: 8
11 |
--------------------------------------------------------------------------------
/structures/aether/hanging_lantern.tesf:
--------------------------------------------------------------------------------
1 | num length = 2+randomInt(7);
2 |
3 | str blockID = getBlock(0, -length, 0);
4 | if (blockID != "minecraft:air") fail;
5 |
6 | for (num y = 0; y < length; y = y + 1) {
7 | block(0,-y,0,"minecraft:chain");
8 | }
9 |
10 | block(0,-length,0,"minecraft:lantern[hanging=true]");
11 |
--------------------------------------------------------------------------------
/structures/aether/misc/clouds/cloud.tesf:
--------------------------------------------------------------------------------
1 | num bodyAmount = 40+randomInt(30);
2 | num radius = 4.5;
3 |
4 | num xOffset = 0;
5 | num yOffset = 0;
6 | num zOffset = 0;
7 |
8 | for (num a = 0; a < bodyAmount; a = a + 1) {
9 | xOffset = xOffset+(2-randomInt(5));
10 | if (randomInt(3) == 0) yOffset = yOffset+2-randomInt(5);
11 | zOffset = zOffset+(2-randomInt(5));
12 |
13 | for (num x = -radius; x < radius; x = x + 1) {
14 | for (num y = -radius; y < radius; y = y + 1) {
15 | for (num z = -radius; z < radius; z = z + 1) {
16 |
17 | if (pow(x,2)+pow(y,2)+pow(z,2) < pow(radius/1.75,2)) {
18 | block(x+xOffset,y+yOffset,z+zOffset,"minecraft:white_concrete",false);
19 | }
20 | }
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/structures/aether/misc/clouds/translucent_cloud.tesf:
--------------------------------------------------------------------------------
1 | num bodyAmount = 40+randomInt(30);
2 | num radius = 4.5;
3 |
4 | num xOffset = 0;
5 | num yOffset = 0;
6 | num zOffset = 0;
7 |
8 | for (num a = 0; a < bodyAmount; a = a + 1) {
9 | xOffset = xOffset+(2-randomInt(5));
10 | if (randomInt(3) == 0) yOffset = yOffset+2-randomInt(5);
11 | zOffset = zOffset+(2-randomInt(5));
12 |
13 | for (num x = -radius; x < radius; x = x + 1) {
14 | for (num y = -radius; y < radius; y = y + 1) {
15 | for (num z = -radius; z < radius; z = z + 1) {
16 |
17 | if (pow(x,2)+pow(y,2)+pow(z,2) < pow(radius/1.75,2)) {
18 | block(x+xOffset,y+yOffset,z+zOffset,"minecraft:white_stained_glass",false);
19 | }
20 | }
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/structures/aether/misc/sky_water_column.tesf:
--------------------------------------------------------------------------------
1 | num height = 40+randomInt(50);
2 | bool allow = true;
3 |
4 | for (num i = height; i >= 0; i = i - 1) {
5 | if (getBlock(0,i,0) != "minecraft:air") allow = false;
6 | }
7 |
8 | if (allow == true) {
9 |
10 | structure(0,height,0,"cloud","NONE");
11 |
12 | // block(1,height,0,"minecraft:white_stained_glass");
13 | // block(-1,height,0,"minecraft:white_stained_glass");
14 | // block(0,height,1,"minecraft:white_stained_glass");
15 | // block(0,height,-1,"minecraft:white_stained_glass");
16 | // block(0,height+1,0,"minecraft:white_stained_glass");
17 |
18 | for (num i = height; i >= 0; i = i - 1) {
19 | block(0, i, 0, "minecraft:water[level=8]");
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/bushes/dark_oak_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:dark_oak_log");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/aether/vegetation/bushes/oak_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:oak_log");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:oak_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/aether/vegetation/bushes/spruce_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:spruce_log");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:spruce_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:spruce_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/aether/vegetation/crops/sweet_berry_bush_patch.tesf:
--------------------------------------------------------------------------------
1 | num count = 6 + randomInt(10); // 4-12
2 |
3 | for (num p = 0; p < count; p = p + 1) {
4 |
5 | num theta = randomInt(360) * 3.14159/180; // Pick random angle
6 | num r = 5 - randomInt(randomInt(6) + 1); // Pick random distance
7 | // Accounts for radial distribution favoring the center
8 | num x = cos(theta) * r;
9 | num z = sin(theta) * r;
10 |
11 | // Check from top downwards for valid spawn
12 | num y = 4;
13 | while (!structure(x, y, z, "plantable", "NONE")) {
14 | y = y - 1;
15 | if (y < -4) fail;
16 | }
17 | block(x, y, z, "minecraft:sweet_berry_bush[age=3]");
18 | }
19 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/crops/wheat_patch.tesf:
--------------------------------------------------------------------------------
1 | num count = 6 + randomInt(10); // 4-12
2 |
3 | for (num p = 0; p < count; p = p + 1) {
4 |
5 | num theta = randomInt(360) * 3.14159/180; // Pick random angle
6 | num r = 5 - randomInt(randomInt(6) + 1); // Pick random distance
7 | // Accounts for radial distribution favoring the center
8 | num x = cos(theta) * r;
9 | num z = sin(theta) * r;
10 |
11 | // Check from top downwards for valid spawn
12 | num y = 4;
13 | while (!structure(x, y, z, "plantable", "NONE")) {
14 | y = y - 1;
15 | if (y < -4) fail;
16 | }
17 | block(x, y, z, "minecraft:wheat[age=7]");
18 | }
19 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/flowers/lilac.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:lilac[half=upper]", false);
2 | block(0, 0, 0, "minecraft:lilac[half=lower]", false);
3 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/flowers/peony.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:peony[half=upper]", false);
2 | block(0, 0, 0, "minecraft:peony[half=lower]", false);
3 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/flowers/rose_bush.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:rose_bush[half=upper]", false);
2 | block(0, 0, 0, "minecraft:rose_bush[half=lower]", false);
3 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/flowers/sunflower.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:sunflower[half=upper]", false);
2 | block(0, 0, 0, "minecraft:sunflower[half=lower]", false);
3 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/large_fern.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:large_fern[half=upper]", false);
2 | block(0, 0, 0, "minecraft:large_fern[half=lower]", false);
--------------------------------------------------------------------------------
/structures/aether/vegetation/place_vines.tesf:
--------------------------------------------------------------------------------
1 | setWaterlog(false);
2 |
3 | bool north = structure(0, 0, -1, "is_leaf", "NONE");
4 |
5 | bool south = structure(0, 0, 1, "is_leaf", "NONE");
6 |
7 | bool east = structure(1, 0, 0, "is_leaf", "NONE");
8 |
9 | bool west = structure(-1, 0, 0, "is_leaf", "NONE");
10 |
11 | if(!(north || south || east || west)) fail;
12 |
13 | str vine = "minecraft:vine[north=" + north + ",south=" + south + ",east=" + east + ",west=" + west + "]";
14 |
15 | num length = randomInt(6) + 10;
16 | for (num i = 0; i < length; i = i + 1) {
17 | if (getBlock(0, -i, 0) != "minecraft:air") return;
18 | block(0, -i, 0, vine, false);
19 | }
20 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/plantable.tesf:
--------------------------------------------------------------------------------
1 | if (getBlock(0, 0, 0) != "minecraft:air") fail;
2 |
3 | str blockBelow = getBlock(0, -1, 0);
4 | if (blockBelow != "minecraft:grass_block" &&
5 | blockBelow != "minecraft:podzol" &&
6 | blockBelow != "minecraft:dirt" &&
7 | blockBelow != "minecraft:coarse_dirt" &&
8 | blockBelow != "minecraft:moss_block" &&
9 | blockBelow != "minecraft:rooted_dirt") {
10 | fail;
11 | }
--------------------------------------------------------------------------------
/structures/aether/vegetation/tall_grass.tesf:
--------------------------------------------------------------------------------
1 | block(0, 1, 0, "minecraft:tall_grass[half=upper]", false);
2 | block(0, 0, 0, "minecraft:tall_grass[half=lower]", false);
--------------------------------------------------------------------------------
/structures/aether/vegetation/trees/leaves/dark_oak_leaves_clump.tesf:
--------------------------------------------------------------------------------
1 | block(0, 0, 0, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
2 | if (randomInt(4) == 0) {
3 | block(0, 0, 1, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
4 | block(0, 1, 0, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
5 | block(0, 1, 1, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
6 | block(1, 0, 0, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
7 | block(1, 0, 1, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
8 | block(1, 1, 0, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
9 | block(1, 1, 1, "minecraft:dark_oak_leaves[distance=1,persistent=false]", false);
10 | }
11 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/trees/leaves/oak_leaves_clump.tesf:
--------------------------------------------------------------------------------
1 | block(0, 0, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
2 | if (randomInt(4) == 0) {
3 | block(0, 0, 1, "minecraft:oak_leaves[distance=1,persistent=false]", false);
4 | block(0, 1, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
5 | block(0, 1, 1, "minecraft:oak_leaves[distance=1,persistent=false]", false);
6 | block(1, 0, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
7 | block(1, 0, 1, "minecraft:oak_leaves[distance=1,persistent=false]", false);
8 | block(1, 1, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
9 | block(1, 1, 1, "minecraft:oak_leaves[distance=1,persistent=false]", false);
10 | }
11 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/trees/leaves/orchard_leaves_clump.tesf:
--------------------------------------------------------------------------------
1 | block(0, 0, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
2 |
3 | if (randomInt(6) == 0) {
4 | for (num x = 0; x < 2; x = x + 1) {
5 | for (num y = 0; y < 2; y = y + 1) {
6 | for (num z = 0; z < 2; z = z + 1) {
7 | block(x, y, z, "minecraft:oak_leaves[distance=1,persistent=false]", false);
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/structures/aether/vegetation/trees/orchard/place_apple.tesf:
--------------------------------------------------------------------------------
1 | for (num x = 0; x < 2; x = x + 1) {
2 | for (num y = 0; y < 2; y = y + 1) {
3 | for (num z = 0; z < 2; z = z + 1) {
4 | if (randomInt(50) == 0 && getBlock(x,y-1,z) == "minecraft:oak_leaves") {
5 | block(x, y, z, "minecraft:red_concrete_powder", true);
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_east.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_east.schem
--------------------------------------------------------------------------------
/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_north.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_north.schem
--------------------------------------------------------------------------------
/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_south.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_south.schem
--------------------------------------------------------------------------------
/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_west.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/crashed-end-ship/schematics/crashed_endship_sc_west.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_house/schematics/end_house_sc_east.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_house/schematics/end_house_sc_east.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_house/schematics/end_house_sc_north.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_house/schematics/end_house_sc_north.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_house/schematics/end_house_sc_south.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_house/schematics/end_house_sc_south.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_house/schematics/end_house_sc_west.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_house/schematics/end_house_sc_west.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_tower/schematics/end_tower_sc_east.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_tower/schematics/end_tower_sc_east.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_tower/schematics/end_tower_sc_north.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_tower/schematics/end_tower_sc_north.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_tower/schematics/end_tower_sc_south.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_tower/schematics/end_tower_sc_south.schem
--------------------------------------------------------------------------------
/structures/end/buildings/end_tower/schematics/end_tower_sc_west.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/end_tower/schematics/end_tower_sc_west.schem
--------------------------------------------------------------------------------
/structures/end/buildings/endship/schematics/endship_sc_east.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/endship/schematics/endship_sc_east.schem
--------------------------------------------------------------------------------
/structures/end/buildings/endship/schematics/endship_sc_north.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/endship/schematics/endship_sc_north.schem
--------------------------------------------------------------------------------
/structures/end/buildings/endship/schematics/endship_sc_south.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/endship/schematics/endship_sc_south.schem
--------------------------------------------------------------------------------
/structures/end/buildings/endship/schematics/endship_sc_west.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/buildings/endship/schematics/endship_sc_west.schem
--------------------------------------------------------------------------------
/structures/end/buildings/shulker-ruin/parts/end_ruin_block.tesf:
--------------------------------------------------------------------------------
1 | num random = randomInt(3);
2 |
3 | str setBlock = "";
4 | if (random == 0) {
5 | setBlock = "minecraft:end_stone_bricks";
6 | } else if (random == 1) {
7 | setBlock = "minecraft:purpur_block";
8 | } else if (random == 2) {
9 | setBlock = "minecraft:end_stone_brick_slab";
10 | } else if (random == 3) {
11 | setBlock = "minecraft:purpur_slab";
12 | }
13 |
14 | block(0,0,0,setBlock);
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/structures/end/buildings/shulker-ruin/parts/end_ruin_wall.tesf:
--------------------------------------------------------------------------------
1 | num length = 3+randomInt(5);
2 | num random = randomInt(4);
3 | str face = "";
4 |
5 | if (getBlock(0,0,0) == "minecraft:air") fail;
6 |
7 | for (num y = 0; y < length; y = y + 1) {
8 | block(0,y,0,"minecraft:end_stone_bricks");
9 | }
10 |
11 | random = randomInt(5);
12 | num randomFace = randomInt(4);
13 | if (randomFace == 0) {
14 | face = "north";
15 | } else if (randomFace == 1) {
16 | face = "east";
17 | } else if (randomFace == 2) {
18 | face = "south";
19 | } else if (randomFace == 3) {
20 | face = "west";
21 | }
22 |
23 | random = randomInt(4);
24 | if (random == 0) {
25 | block(0,length,0,"minecraft:end_stone_brick_stairs[facing="+face+"]");
26 | } else if (random == 1) {
27 | block(0,length,0,"minecraft:purpur_stairs[facing="+face+"]");
28 | } else if (random == 2) {
29 | block(0,length,0,"minecraft:purpur_slab");
30 | } else if (random == 3) {
31 | block(0,length,0,"minecraft:end_stone_brick_slab");
32 | }
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/structures/end/dragon-island/fountain/fountain_hill.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 |
3 | num height = 25;
4 | num yTranslate = -6;
5 | num radius = 10;
6 |
7 | num dir = 0;
8 | str setBlock = "";
9 | for(num h = 0; h <= height; h = h + 1) {
10 | for(num x = -radius; x <= radius; x = x + 1) {
11 | for(num z = -radius; z <= radius; z = z + 1) {
12 |
13 | if (pow(x,2)+pow(z,2) < pow(radius,2) && h < 13) {
14 | setBlock = "minecraft:end_stone";
15 | block(x, h+yTranslate, z, setBlock, false);
16 | }
17 | }
18 | }
19 | if ((h % h/2 == 0) && h > 3) radius = radius/1.05;
20 | }
--------------------------------------------------------------------------------
/structures/end/dragon-island/fountain/upgraded_fountain.tesf:
--------------------------------------------------------------------------------
1 | structure(0, 1, 0, "upgraded_fountain_sc", "NONE");
--------------------------------------------------------------------------------
/structures/end/dragon-island/fountain/upgraded_fountain_sc.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/dragon-island/fountain/upgraded_fountain_sc.schem
--------------------------------------------------------------------------------
/structures/end/dragon-island/vex_spawner/fountain_vex_spawner.tesf:
--------------------------------------------------------------------------------
1 | num radius = 4;
2 | num yTranslate = -8;
3 |
4 | structure(0,yTranslate,0, "vex_spawner_sc", "NONE");
5 |
6 | for (num x = -radius; x < radius; x = x + 1) {
7 | for (num y = -radius; y < radius; y = y + 1) {
8 | for (num z = -radius; z < radius; z = z + 1) {
9 | if (getBlock(x,y+yTranslate,z) == "minecraft:spawner") state(x, y+yTranslate, z,"type=VEX");
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/structures/end/dragon-island/vex_spawner/pillar_vex_spawner.tesf:
--------------------------------------------------------------------------------
1 | num radius = 4;
2 | num yTranslate = -12;
3 |
4 | structure(0,yTranslate,0, "vex_spawner_sc", "NONE");
5 |
6 | for (num x = -radius; x < radius; x = x + 1) {
7 | for (num y = -radius; y < radius; y = y + 1) {
8 | for (num z = -radius; z < radius; z = z + 1) {
9 | if (getBlock(x,y+yTranslate,z) == "minecraft:spawner") state(x, y+yTranslate, z,"type=VEX");
10 |
11 | if (getBlock(x,y+yTranslate,z) == "minecraft:crying_obsidian") block(x, y+yTranslate, z, "minecraft:obsidian", true);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/structures/end/dragon-island/vex_spawner/schematic/vex_spawner_sc.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/dragon-island/vex_spawner/schematic/vex_spawner_sc.schem
--------------------------------------------------------------------------------
/structures/end/misc/amethyst/giant_amethyst_crystal.tesf:
--------------------------------------------------------------------------------
1 | num radius = 4+randomInt(3);
2 | num random = randomInt(3);
3 | str setBlock = "minecraft:amethyst_block";
4 |
5 | for (num y = -30; y < 30; y = y + 1) {
6 | for (num x = -radius; x < radius; x = x + 1) {
7 | for (num z = -radius; z < radius; z = z + 1) {
8 | if ((pow(x,2)*(3+random))+(pow(y,2)/(3+random))+(pow(z,2)*(3+random)) < pow(radius,2)) {
9 | if (getBlock(x,y,z) == "minecraft:air") block(x, y, z, setBlock);
10 | }
11 | }
12 | }
13 | }
14 |
15 | for (num x = -radius; x < radius; x = x + 1) {
16 | for (num y = -radius*3; y < radius*3; y = y + 1) {
17 | for (num z = -radius; z < radius; z = z + 1) {
18 | structure(x,y,z,"amethyst_buds", "NONE");
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/structures/end/misc/apribloon/apribloon_procedural.tesf:
--------------------------------------------------------------------------------
1 | num length = 10 + randomInt(40);
2 |
3 | for (num y = 0; y < length; y = y + 1) {
4 | block(0, y, 0, "minecraft:acacia_fence", false);
5 | }
6 | structure(0, length+8, 0, "apribloon_body", "NONE");
7 |
--------------------------------------------------------------------------------
/structures/end/misc/crying_drip.tesf:
--------------------------------------------------------------------------------
1 | num length = 2 + randomInt(4);
2 | str setBlock = "minecraft:purple_concrete";
3 |
4 | for (num y = 0; y < length; y = y + 1) {
5 |
6 | if ( (getBlock(0, -y, 0)) != "minecraft:air") fail;
7 |
8 | block( 0, -y, 0, setBlock);
9 | }
--------------------------------------------------------------------------------
/structures/end/misc/end-gateways/end_gateway.schem:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PolyhedralDev/ReimagEND/c6b0f3552769d60ee57efc0a8fb10351ae7da532/structures/end/misc/end-gateways/end_gateway.schem
--------------------------------------------------------------------------------
/structures/end/misc/water_column.tesf:
--------------------------------------------------------------------------------
1 | num i = 0;
2 | bool foundTop = false;
3 | for (num unused = 0; i < 319; i = i + 1) {
4 | if (getBlock(0, i+1, 0) != "minecraft:air") {
5 | if (structure(0, i+1, 0, "is_rock", "NONE") &&
6 | structure(0, i+1, -1, "is_rock", "NONE") &&
7 | structure(1, i+1, 0, "is_rock", "NONE") &&
8 | structure(-1, i+1, 0, "is_rock", "NONE") &&
9 | structure(0, i+1, 1, "is_rock", "NONE") &&
10 | (structure(0, i+2, 0, "is_rock", "NONE") || getBlock(0, i+2, 0) == "minecraft:air")) {
11 | block(0, i+1, 0, "minecraft:water");
12 | foundTop = true;
13 | break;
14 | } else fail;
15 | }
16 | }
17 | if (!foundTop) fail;
18 | for (num unused = 0; i >= 0; i = i - 1) {
19 | block(0, i, 0, "minecraft:water[level=8]");
20 | }
--------------------------------------------------------------------------------
/structures/end/pillars/giant_obsidian_pillar.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 |
3 | num height = 40 + randomInt(30);
4 | num yTranslate = -20;
5 | num radius = 4+randomInt(2);
6 |
7 | for(num y = yTranslate; y <= height+yTranslate; y = y + 1) {
8 | for(num x = -radius; x <= radius; x = x + 1) {
9 | for(num z = -radius; z <= radius; z = z + 1) {
10 | if (pow(x,2)+pow(z,2) < pow(radius,2)) {
11 | block(x, y, z, "minecraft:obsidian", false);
12 | }
13 | }
14 | }
15 | }
16 |
17 | if (randomInt(3) == 0) entity(0, height+yTranslate+2, 0, "minecraft:end_crystal");
--------------------------------------------------------------------------------
/structures/end/pillars/shattered_pillar_procedural.tesf:
--------------------------------------------------------------------------------
1 | num height = 7+randomInt(5);
2 | num random = randomInt(21);
3 | num r = 0.5;
4 |
5 | if (random >= 20) {
6 | r = 1.2;
7 | height = 12+randomInt(9);
8 | } else if (random >= 16) {
9 | r = 0.5;
10 | height = 7+randomInt(5);
11 | } else if (random >= 0) {
12 | r = 0.1;
13 | height = 7+randomInt(7);
14 | }
15 |
16 | for (num y = -5+randomInt(3); y <= height ; y = y + 1) {
17 | for (num x = -r; x <= r; x = x + 1) {
18 | for (num z = -r; z <= r; z = z + 1) {
19 | block(x, y, z, "minecraft:obsidian");
20 | }
21 | }
22 |
23 | }
24 |
25 | if (randomInt(10) == 0 && r != 0.5) entity(0, height+2, 0, "minecraft:end_crystal");
26 |
27 |
--------------------------------------------------------------------------------
/structures/end/spikes/crystal-spikes/crystal_spike_cluster.tesf:
--------------------------------------------------------------------------------
1 | // obsidian spike cluster for jagged_end
2 |
3 | num spikes = 2+randomInt(3);
4 | for (num i = 0; i < spikes; i = i + 1) {
5 | structure(0,0,0,"crystal_spike","NONE");
6 | }
--------------------------------------------------------------------------------
/structures/end/spikes/crystal-spikes/crystal_spike_cluster_down.tesf:
--------------------------------------------------------------------------------
1 | // obsidian spike cluster for jagged_end
2 |
3 | num spikes = 2+randomInt(3);
4 | for (num i = 0; i < spikes; i = i + 1) {
5 | structure(0,0,0,"crystal_spike_down","NONE");
6 | }
--------------------------------------------------------------------------------
/structures/end/spikes/tipped_obsidian_spike_cluster.tesf:
--------------------------------------------------------------------------------
1 | // obsidian spike cluster for jagged_end
2 |
3 | num spikes = 3+randomInt(10);
4 | for (num i = 0; i < spikes; i = i + 1) {
5 | structure(0,0,0,"tipped_obsidian_spike","NONE");
6 | }
--------------------------------------------------------------------------------
/structures/end/tendrils/purple_tendril_up.tesf:
--------------------------------------------------------------------------------
1 | num radius = 2+randomInt(6);
2 | num length = 30+randomInt(20);
3 | num xTranslate = 0;
4 | num zTranslate = 0;
5 | str setBlock = "minecraft:purple_concrete";
6 | for(num l = 0; l <= length; l = l + 1) {
7 |
8 | // Reduce radius inversely to length
9 | num r = (radius/length * -l) + radius;
10 |
11 | // Generate sphere at each point
12 | for(num x = -r; x <= r; x = x + 1) {
13 | for(num y = -r; y <= r; y = y + 1) {
14 | for(num z = -r; z <= r; z = z + 1) {
15 | if (pow(x,2)+pow(y,2)+pow(z,2) < pow(r,2)) {
16 | setBlock = "minecraft:purple_concrete";
17 | if (randomInt(4) == 0) setBlock = "minecraft:purple_concrete_powder";
18 | block(x + xTranslate, l + y - radius, z + zTranslate, setBlock, false);
19 | }
20 | }
21 | }
22 | }
23 | xTranslate = xTranslate+(1-randomInt(3));
24 | zTranslate = zTranslate+(1-randomInt(3));
25 | }
--------------------------------------------------------------------------------
/structures/end/vegetation/bushes/pearlescent_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:pearlescent_froglight");
7 |
8 | str setBlock = "";
9 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
10 | for(num y = 0; y <= radiusCeil; y = y + 1) {
11 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
12 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
13 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
14 | setBlock = "minecraft:white_stained_glass";
15 | if (randomInt(4) == 0) setBlock = "minecraft:light_gray_stained_glass";
16 | block(x, y, z, setBlock, false);
17 | }
18 | }
19 | }
20 | }
21 |
22 | block(0, 1, 0, "minecraft:white_stained_glass", false);
--------------------------------------------------------------------------------
/structures/end/vegetation/bushes/stripped_acacia_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:stripped_acacia_log");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:acacia_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:acacia_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/end/vegetation/bushes/stripped_mangrove_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:stripped_mangrove_log");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:mangrove_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:mangrove_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/end/vegetation/bushes/warped_stem_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:stripped_warped_stem");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:oak_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/end/vegetation/crimson_stem_bush.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 | num radius = randomInt(randPrecision)/randPrecision*3 + 1;
3 | num radiusCeil = ceil(radius);
4 | num radiusSquared = pow(radius, 2);
5 |
6 | block(0, 0, 0, "minecraft:stripped_crimson_stem");
7 |
8 | for(num x = -radiusCeil; x <= radiusCeil; x = x + 1) {
9 | for(num y = 0; y <= radiusCeil; y = y + 1) {
10 | for(num z = -radiusCeil; z <= radiusCeil; z = z + 1) {
11 | num distanceSquared = (pow(x,2) + pow(y*3,2) + pow(z,2));
12 | if (distanceSquared/radiusSquared < randomInt(randPrecision)/randPrecision) {
13 | block(x, y, z, "minecraft:oak_leaves[distance=1,persistent=false]", false);
14 | }
15 | }
16 | }
17 | }
18 |
19 | block(0, 1, 0, "minecraft:oak_leaves[distance=1,persistent=false]", false);
--------------------------------------------------------------------------------
/structures/end/vegetation/mushrooms/blue_mushrooms/blue_mushroom_cluster.tesf:
--------------------------------------------------------------------------------
1 | num amount = 2+randomInt(3);
2 | for (num i = 0; i < amount; i = i + 1) {
3 | structure(0,0,0,"blue_mushroom","NONE");
4 | }
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/burble_trees/burble_stems.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 |
3 | num dx = 1;
4 | num dz = 1;
5 |
6 | num length = 4;
7 |
8 | num droop = 0.3;
9 |
10 | str setBlock = "minecraft:black_concrete";
11 |
12 | num y = 0;
13 | for (num l = 0; l <= length; l = l + 0.5) {
14 | block(l*dx, y, dz*l, setBlock, true);
15 |
16 | block(-l*dx, y, dz*l, setBlock, true);
17 |
18 | block(l*dx, y, -dz*l, setBlock, true);
19 |
20 | block(-l*dx, y, -dz*l, setBlock, true);
21 |
22 | y = y+(l*droop);
23 | }
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/chorus_tree/chorus_branches/chorus_branch_east.tesf:
--------------------------------------------------------------------------------
1 | num length = 3+randomInt(6);
2 | bool allow = true;
3 |
4 | for (num y = 1; y < length; y = y + 1) {
5 | if (getBlock(0,y,0) != "minecraft:air") {
6 | allow = false;
7 | fail;
8 | }
9 | }
10 |
11 | if (allow == true) {
12 | block(0,0,0,"minecraft:chorus_plant[up=true,west=true]");
13 | for (num y = 1; y < length; y = y + 1) {
14 | block(0,y,0,"minecraft:chorus_plant[up=true,down=true]");
15 | }
16 | }
17 |
18 | block(0,length,0,"minecraft:chorus_flower[age=5]");
19 |
20 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/chorus_tree/chorus_branches/chorus_branch_north.tesf:
--------------------------------------------------------------------------------
1 | num length = 3+randomInt(6);
2 | bool allow = true;
3 |
4 | for (num y = 1; y < length; y = y + 1) {
5 | if (getBlock(0,y,0) != "minecraft:air") {
6 | allow = false;
7 | fail;
8 | }
9 | }
10 |
11 | if (allow == true) {
12 | block(0,0,0,"minecraft:chorus_plant[up=true,south=true]");
13 | for (num y = 1; y < length; y = y + 1) {
14 | block(0,y,0,"minecraft:chorus_plant[up=true,down=true]");
15 | }
16 | }
17 |
18 | block(0,length,0,"minecraft:chorus_flower[age=5]");
19 |
20 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/chorus_tree/chorus_branches/chorus_branch_south.tesf:
--------------------------------------------------------------------------------
1 | num length = 3+randomInt(6);
2 | bool allow = true;
3 |
4 | for (num y = 1; y < length; y = y + 1) {
5 | if (getBlock(0,y,0) != "minecraft:air") {
6 | allow = false;
7 | fail;
8 | }
9 | }
10 |
11 | if (allow == true) {
12 | block(0,0,0,"minecraft:chorus_plant[up=true,north=true]");
13 | for (num y = 1; y < length; y = y + 1) {
14 | block(0,y,0,"minecraft:chorus_plant[up=true,down=true]");
15 | }
16 | }
17 |
18 | block(0,length,0,"minecraft:chorus_flower[age=5]");
19 |
20 |
21 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/chorus_tree/chorus_branches/chorus_branch_west.tesf:
--------------------------------------------------------------------------------
1 | num length = 3+randomInt(6);
2 | bool allow = true;
3 |
4 | for (num y = 1; y < length; y = y + 1) {
5 | if (getBlock(0,y,0) != "minecraft:air") {
6 | allow = false;
7 | fail;
8 | }
9 | }
10 |
11 | if (allow == true) {
12 | block(0,0,0,"minecraft:chorus_plant[up=true,east=true]");
13 | for (num y = 1; y < length; y = y + 1) {
14 | block(0,y,0,"minecraft:chorus_plant[up=true,down=true]");
15 | }
16 | }
17 |
18 | block(0,length,0,"minecraft:chorus_flower[age=5]");
19 |
20 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/ivory_trees/ivory_clump.tesf:
--------------------------------------------------------------------------------
1 | str setBlock = "minecraft:white_stained_glass";
2 |
3 | for (num x = 0; x < 1; x = x + 1) {
4 | for (num y = 0; y < 1; y = y + 1) {
5 | for (num z = 0; z < 1; z = z + 1) {
6 |
7 | setBlock = "minecraft:white_stained_glass";
8 | if (randomInt(4) == 0) setBlock = "minecraft:pearlescent_froglight";
9 | block(x, y, z, setBlock, false);
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/ivory_trees/ivory_vine.tesf:
--------------------------------------------------------------------------------
1 | num length = randomInt(6) + 10;
2 |
3 | if (getBlock(0,1,0) == "minecraft:air") fail;
4 |
5 | str setBlock = "";
6 | for (num i = 0; i < length; i = i + 1) {
7 | if (getBlock(0, -i, 0) != "minecraft:air") return;
8 | setBlock = "minecraft:white_stained_glass_pane";
9 |
10 | block(0, -i, 0, setBlock, false);
11 |
12 | if (i == (length-1)) block(0, -i, 0, "minecraft:pearlescent_froglight", true);
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/magenta-coral/magenta_strand_cluster.tesf:
--------------------------------------------------------------------------------
1 | // obsidian spike cluster for jagged_end
2 |
3 | num spikes = 8+randomInt(4);
4 | for (num i = 0; i < spikes; i = i + 1) {
5 | structure(0,0,0,"magenta_strand","NONE");
6 | }
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/shattered_trees/shattered_leaves_clump.tesf:
--------------------------------------------------------------------------------
1 | str leafBlock = "minecraft:purple_stained_glass";
2 | str altLeafBlock = "minecraft:magenta_stained_glass";
3 | str placeBlock = leafBlock;
4 | for (num x = 0; x < 1; x = x + 1) {
5 | for (num y = 0; y < 1; y = y + 1) {
6 | for (num z = 0; z < 1; z = z + 1) {
7 | placeBlock = leafBlock;
8 | if (randomInt(2) == 0) placeBlock = altLeafBlock;
9 | if (randomInt(10) == 0) placeBlock = "minecraft:light[level=15]";
10 | block(x, y, z, placeBlock, false);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/warped/twisting_vines.tesf:
--------------------------------------------------------------------------------
1 | num length = 2+randomInt(5);
2 |
3 | for (num y = 0; y < length; y = y + 1) {
4 | block(0, y, 0, "minecraft:twisting_vines_plant");
5 | }
6 |
7 | block(0, length, 0, "minecraft:twisting_vines");
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/warped/warped_mangrove/warped_buds.tesf:
--------------------------------------------------------------------------------
1 | if(getBlock(0, 0, 0) != "minecraft:warped_wart_block") {
2 | fail;
3 | }
4 |
5 | str setBlock = "minecraft:warped_roots";
6 |
7 | if(getBlock(0, 1, 0) == "minecraft:air") block(0,1,0, setBlock, false);
--------------------------------------------------------------------------------
/structures/end/vegetation/trees/warped/warped_mangrove/warped_wart_clump.tesf:
--------------------------------------------------------------------------------
1 | block(0, 0, 0, "minecraft:warped_wart_block", false);
2 |
3 | if (randomInt(4) == 0) {
4 | block(0, 0, 1, "minecraft:warped_wart_block", false);
5 | block(0, 1, 0, "minecraft:warped_wart_block", false);
6 | block(0, 1, 1, "minecraft:warped_wart_block", false);
7 | block(1, 0, 0, "minecraft:warped_wart_block", false);
8 | block(1, 0, 1, "minecraft:warped_wart_block", false);
9 | block(1, 1, 0, "minecraft:warped_wart_block", false);
10 | block(1, 1, 1, "minecraft:warped_wart_block", false);
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/structures/is_leaf.tesf:
--------------------------------------------------------------------------------
1 | str blockID = getBlock(0, 0, 0);
2 | if (blockID != "minecraft:oak_leaves" &&
3 | blockID != "minecraft:birch_leaves" &&
4 | blockID != "minecraft:spruce_leaves" &&
5 | blockID != "minecraft:jungle_leaves" &&
6 | blockID != "minecraft:acacia_leaves" &&
7 | blockID != "minecraft:dark_oak_leaves" &&
8 | blockID != "minecraft:mangrove_leaves") {
9 | fail;
10 | }
--------------------------------------------------------------------------------
/structures/void/asteroids/asteroid_ores.tesf:
--------------------------------------------------------------------------------
1 | num blockSelection = randomInt(34);
2 | if(blockSelection <= 27) structure(0, 0, 0, "asteroid_palette", "NONE");
3 | else if(blockSelection <= 32) block(0, 0, 0,"minecraft:deepslate_coal_ore");
4 | else if(blockSelection <= 33) block(0, 0, 0,"minecraft:deepslate_iron_ore");
--------------------------------------------------------------------------------
/structures/void/asteroids/asteroid_palette.tesf:
--------------------------------------------------------------------------------
1 | num blockSelection = randomInt(1000)/1000;
2 | if (blockSelection <= 0.5) block(0, 0, 0,"minecraft:deepslate");
3 | else if (blockSelection <= 0.6) block(0, 0, 0,"minecraft:basalt");
4 | else if (blockSelection <= 0.9) block(0, 0, 0,"minecraft:smooth_basalt");
5 | else block(0, 0, 0,"minecraft:mud");
--------------------------------------------------------------------------------
/structures/void/asteroids/icy-asteroid/icy_asteroid_palette.tesf:
--------------------------------------------------------------------------------
1 | num blockSelection = randomInt(1000)/1000;
2 | if (blockSelection <= 0.1) block(0, 0, 0,"minecraft:basalt");
3 | else if (blockSelection <= 0.2) block(0, 0, 0,"minecraft:smooth_basalt");
4 | else if (blockSelection <= 0.3) block(0, 0, 0,"minecraft:mud");
5 | else if (blockSelection <= 0.4) block(0, 0, 0,"minecraft:deepslate");
6 | else if (blockSelection <= 0.6) block(0, 0, 0,"minecraft:blue_ice");
7 | else if (blockSelection <= 0.8) block(0, 0, 0,"minecraft:packed_ice");
8 | else block(0, 0, 0,"minecraft:ice");
--------------------------------------------------------------------------------
/structures/void/aurora/blue_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:blue_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/cyan_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:cyan_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/green_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:green_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/light_blue_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:light_blue_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/lime_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:lime_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/magenta_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:magenta_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/pink_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:pink_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/purple_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:purple_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/red_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:red_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/aurora/yellow_aurora_segment.tesf:
--------------------------------------------------------------------------------
1 | num length = 10+randomInt(6);
2 | num radius = 2;
3 |
4 | str setBlock = "minecraft:yellow_stained_glass";
5 | if (getBlock(0,0,0) == "minecraft:air") block(0, 0, 0, "minecraft:light[level=15]", false);
6 | if (getBlock(1, 1, 0) == "minecraft:air") block(1, 1, 0, "minecraft:light[level=15]", false);
7 | if (getBlock(0, 1, 1) == "minecraft:air") block(0, 1, 1, "minecraft:light[level=15]", false);
8 | if (getBlock(-1, 1, 0) == "minecraft:air") block(-1, 1, 0, "minecraft:light[level=15]", false);
9 | if (getBlock(0, 1, -1) == "minecraft:air") block(0, 1, -1, "minecraft:light[level=15]", false);
10 |
11 | for(num l = 0; l < length; l = l + 1) {
12 |
13 | num r = radius;
14 |
15 | block(0, l, 0, setBlock, false);
16 | }
--------------------------------------------------------------------------------
/structures/void/galaxies/horizontal_galaxy.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 |
3 | num length = 10+randomInt(10);
4 | num direction = randomInt(randPrecision)/randPrecision;
5 | str setBlock = "minecraft:white_concrete";
6 | num random = 0;
7 | num dir = 1-randomInt(3);
8 |
9 | for (num i = 0; i < length; i = i + 0.01) {
10 | if (direction > 100) direction = 0;
11 |
12 | random = randomInt(3);
13 | if (random == 0) {
14 | setBlock = "minecraft:purple_concrete";
15 | } else if (random == 1) {
16 | setBlock = "minecraft:magenta_concrete";
17 | } else setBlock = "minecraft:gray_concrete";
18 |
19 | if ((randomInt(2) == 0) && (i < 5)) {
20 | setBlock = "minecraft:pearlescent_froglight";
21 | }
22 |
23 | if (round(direction) % (2+randomInt(2)) == 0) {
24 | block(i*cos(direction),dir*i/4,i*sin(direction),setBlock);
25 | }
26 |
27 | direction = direction + 0.1;
28 | }
--------------------------------------------------------------------------------
/structures/void/galaxies/vertical_galaxy.tesf:
--------------------------------------------------------------------------------
1 | num randPrecision = 100;
2 |
3 | num length = 10+randomInt(10);
4 | num direction = randomInt(randPrecision)/randPrecision;
5 | str setBlock = "minecraft:white_concrete";
6 | num random = 0;
7 | num dir = 1-randomInt(3);
8 |
9 | for (num i = 0; i < length; i = i + 0.01) {
10 | if (direction > 100) direction = 0;
11 |
12 | random = randomInt(3);
13 | if (random == 0) {
14 | setBlock = "minecraft:purple_concrete";
15 | } else if (random == 1) {
16 | setBlock = "minecraft:magenta_concrete";
17 | } else setBlock = "minecraft:gray_concrete";
18 |
19 | if ((randomInt(2) == 0) && (i < 5)) {
20 | setBlock = "minecraft:pearlescent_froglight";
21 | }
22 |
23 | if (round(direction) % (2+randomInt(2)) == 0) {
24 | block(dir*i/4,i*cos(direction),i*sin(direction),setBlock);
25 | }
26 |
27 | direction = direction + 0.1;
28 | }
--------------------------------------------------------------------------------