Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sky Dimension #931

Draft
wants to merge 35 commits into
base: master
Choose a base branch
from
Draft

Sky Dimension #931

wants to merge 35 commits into from

Conversation

BPR02
Copy link
Member

@BPR02 BPR02 commented Dec 27, 2023

Implements a sky dimension "Celesterra" for 1.20.3 using noise and density functions to create islands that adhere to biome borders. This is a heavy WIP; most updates will be shown on discord (this channel), but the current milestones can be seen below. This module does not currently use beet, thus will fail the Github Action since it's just a normal data pack right now.

TO-DO List:

  • make specific areas of void based on the continentalness density function router
  • make islands groups within the land masses based on the temperature density function router
  • make different types of island groups based on erosion, continents, and ridges density function routers
    • low erosion, low continentalness, low ridges: huge, mostly flat islands
    • low erosion, low continentalness, high ridges: large main island with small ice island that have waterfalls
    • low erosion, high continentalness, low ridges: mountainous islands
    • low erosion, high continentalness, high ridges: cave islands
    • normal erosion, normal continentalness: default islands based on the vegetation density function router to split island groups into separate islands
      • create 4 bands of islands spanning the height of the dimension
      • vary the height of the islands within a band to make the main bands less obvious
      • add "stair" islands in between island groups that span from the lowest band to the main band
    • high erosion, low continentalness, low ridges: "bowl" island
    • high erosion, low continentalness, high ridges: normal terrain split into small island blobs
    • high erosion, high continentalness, low ridges: extreme climate islands
    • high erosion, high continentalness, high ridges: small, very tightly packed islands, spanning the entire dimension height
  • populate biomes
  • add structures
  • extras (sky dimension packaged expansions)

There are some placeholder biomes to explore the different areas while this is still a draft:

  • ocean: void
  • beach: high erosion, low continents (small island blobs following normal terrain "bands")
  • sparse jungle: high erosion, high continents (many small islands spanning entire dimension height)
  • bamboo_jungle: low erosion (huge islands)
  • snowy_slopes: mountainous terrain
  • cherry_grove, desert, snowy_plains, taiga, dark_forest, swamp: normal terrain (each of those are a different temperature range with 2 other biomes in that temperature range)
  • snowy_slopes: mountainous terrain
  • badlands: mesa terrain
  • mushroom_fields: "bowl" terrain (large wall ring with smaller islands inside)
  • dripstone_caves: cave islands
  • gm4_sky_dimension:floating_falls

- dimension type
- dimension
- default noise for routers
- placeholder routers
- reduce ambient light
- add placeholder biomes for testing
- Necessary due to MC-255097
- Made max_y 384 so cloud level is at halfway point of the dimension
- determines where void vs land will generate (islands created via erosion in a later commit)
Island groups are determined by temperature.

In the future separate islands will be determined by the vegetation (and will probably be set by erosion).
- islands separated based on vegetation
- middle islands will generate with terrain cutting through the clouds and usually a surface above the clouds
- placeholder surface terrain; will be based on ridges eventually
- ensure carver is what's causing the separation instead of the underside terrain
- made topside terrain flat to test consistent separation
- placeholder biomes to test island size and separation
- still need to mess with island size (too large)
- split using underside terrain (so the islands separated by vegetation are further split by random noise)
- moved down closer to cloud level, tweaking size of islands
- 3 layers of islands
  - layer above the clouds: large islands with a lot of underside terrain
  - layer at bottom (black void level): small islands, pretty common
  - layer between: medium islands, not much underside terrain, somewhat sparse

- readded void area and biome (issue with continent terrain and multi-noise biome placement)
- fix bottom layer not appearing due to continent land mass df
- add wispy islands
- tweak heights
- move up bottom and mid bottom layers to be closer to the main layer
- bottom layer islands no longer generate in areas of low continentalness
- got tired of it sending a failure notification/email
- make high erosion areas "shattered" into many small islands
- high erosion: normal terrain split into small blobs
- low erosion: huge islands
- added full island blobs that span the entire dimension height
- use springs and lakes for water instead of noise settings
- make small floating islands ice based
- make main island mud based
- make main island larger, slightly lower density of waterfall islands, slightly increase size of waterfall islands
@Bloo-dev Bloo-dev added the module A concept-approved module to be added to the repository label Jan 2, 2024
- ensure biome border of huge islands and floating falls is in the void
- ensure floating falls stops when huge islands generate (and vice versa)
- for normal terrain, vary the height of islands within a band
- readd small islands into areas of low continentalness (the main point of the islands are to aid in traversing from the bottom of the world, so these islands need to generate almost everywhere)
- use depth router to split dimension into biome bands (biomes not set yet)
- prevent structures from generating at the void
- add gradient so islands get smaller when reaching top and bottom limits
- increase island size
- use caching in noise routers
- shrink the gap between different island groups
- for normal terrain, add steep slopes from the bottom island to the main islands
- these islands generate between temperature groups
commiting this in case I can't get the good mountainous terrain working
- new method to ensure the island borders are flat
- use base_3d_noise and jagged noise to texture mountains
- erosion -> island_types
- erosion/high -> island_types/shattered
- mountainous -> mountainous/normal
- badlands island type (placement may change)
- add bridges to shattered island type
- outer ring of island creating huge "walls," surrounding smaller, lower islands.
- outer ring slopes downwards towards the center
- make some areas have steeper hills (based on ridges)
- clamp stair islands to stop at Y=270
- make badlands generate less frequently (higher temperatures)
- remove stony peaks test biome
- large islands with hollow "mountains" creating hills
- introduce preliminary surface from initial_density to allow cave islands to have different surface blocks inside and outside the caves
- shrink border between normal and cave islands
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module A concept-approved module to be added to the repository
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants