Skygrid

Skygrid

39.5k Downloads

Multiple Biome Grid

TBiscuit1 opened this issue · 4 comments

commented

Is your feature request related to a problem? Please describe.
I want to make modpack where you need to explore the grid to harvest some material, but since it's only one biome/grid per dimension, I'm really limited in my option

Describe the solution you'd like
Add the ability to have biomes in grids, those biomes would have different block chances
For exemple, in the plain biome, you would get grass, oak and other stuff like that, in a taiga it would be snow, spruce and other stuff like that

Describe alternatives you've considered
Have blocks only spawn the further you go from 0,0 would also fix my problem. But it would be less interesting

Additional context
Add any other context or screenshots about the feature request here.

commented

You should be able to change the biome source using a datapack and replacing the vanilla dimensions, similar to what I described here.

Instead of type: fixed you use something different. (some info about biome sources is described here).

Having the blocks be dependend on which biome is spawned would require a lot of re-writing of the entire logic, as this was not intended to work this way and is out of scope currently, but an interesting suggestion

commented

Thanks for the info! With that, I think I might of found a way to "cheese" the system by using custom block that transform to specific blocks depending of the biome, wouldn't be the prettiest way to do it, but would make it possible to do what I want without waiting

commented

You should be able to change the biome source using a datapack and replacing the vanilla dimensions, similar to what I described here.

Instead of type: fixed you use something different. (some info about biome sources is described here).

I am too developing a modpack using your skygrid terrain generator. There is no personal problem with the generator only using minecraft:plains out of the box.

I was thinking, that some players might be interested in different biomes, due to the change in grass and water color depending on which biome one currently is in. I have found on the skygrid repo wiki the information to create the custom generator.

I tried to create a vanilla biome generator using inside the generator function "biomes":[...] and "type": "multi_noise". For the biomes I first inserted all minecraft biomes using this world generator datapack, which should generate all vanilla biomes.

The datapack is loaded with KubeJS, and it is loading correctly. Folder structure looks like this:

  • data $\to$ minecraft $\to$ dimension $\to$ overworld.json
  • data $\to$ somemod $\to$ skygrid $\to$ dimensions $\to$ overworld.xml

After I created a new world with the custom skygrid terrain generator, I realized that the biomes always was minecraft:river.


I then created following new overworld generator:

The new overworld generator json
  
{
  "type": "minecraft:overworld",
  "generator": {
    "type": "skygrid:skygrid",
     "config": "somemod:overworld",
     "biome_source": {
       "type": "multi_noise",
       "biomes": [
        {
          "parameters": {
            "erosion": [
              -1.0,
              1.0
            ],
            "depth": 0.0,
            "weirdness": [
              -1.0,
              1.0
            ],
            "offset": 0.0,
            "temperature": [
              -1.0,
              1.0
            ],
            "humidity": [
              -1.0,
              1.0
            ],
            "continentalness": [
              -1.2,
              -1.05
            ]
          },
          "biome": "minecraft:mushroom_fields"
        },
        {
          "parameters": {
            "erosion": [
              -1.0,
              1.0
            ],
            "depth": 1.0,
            "weirdness": [
              -1.0,
              1.0
            ],
            "offset": 0.0,
            "temperature": [
              -1.0,
              1.0
            ],
            "humidity": [
              -1.0,
              1.0
            ],
            "continentalness": [
              -1.2,
              -1.05
            ]
          },
          "biome": "minecraft:mushroom_fields"
        },
        {
          "parameters": {
            "erosion": [
              -1.0,
              1.0
            ],
            "depth": 0.0,
            "weirdness": [
              -1.0,
              1.0
            ],
            "offset": 0.0,
            "temperature": [
              -1.0,
              -0.45
            ],
            "humidity": [
              -1.0,
              1.0
            ],
            "continentalness": [
              -1.05,
              -0.455
            ]
          },
          "biome": "minecraft:deep_frozen_ocean"
        }
       ]
     }
 }
}
  
  

Again, after creating a new world, the terrain was successfully generating in the skygrid style, but the biomes now was minecraft:deep_frozen_ocean.

I am using:

  • forge 1.18.2 40.1.85
  • Architectury 4.10.86
  • Kotlin for Forge 3.7.1
  • KubeJS 1802.5.5-build.562
  • Rhino 1802.2.1-build.255
  • Skygrid 3.0.9

I don't think this is intended behavior. Maybe I found a bug.

commented

@QuantumGitHub Not sure if it's still relevant (or helpful), but I found out that you can get all biomes to generate. Only that you have to use biome_source with checkerboard type. I played around with your method at first, and it always seems to generate one biome.

example with checkerboard
    "type": "minecraft:overworld",
    "generator": {
        "type": "skygrid:skygrid",
        "config": "somemod:overworld",
        "biome_source": {
            "type": "minecraft:checkerboard",
	    "scale": 1,
            "biomes": [
                "minecraft:dripstone_caves",
                "minecraft:eroded_badlands",
                "minecraft:wooded_badlands",
                "minecraft:badlands",
                "minecraft:desert",
                "minecraft:beach",
                "minecraft:savanna",
                "minecraft:savanna_plateau",
                "minecraft:windswept_savanna",
                "minecraft:stony_peaks",
                "minecraft:sparse_jungle",
                "minecraft:jungle",
                "minecraft:bamboo_jungle",
                "minecraft:mushroom_fields",
                "minecraft:sunflower_plains",
                "minecraft:plains",
                "minecraft:swamp",
                "minecraft:flower_forest",
                "minecraft:forest",
                "minecraft:dark_forest",
                "minecraft:old_growth_birch_forest",
                "minecraft:birch_forest",
                "minecraft:meadow",
                "minecraft:lush_caves",
                "minecraft:river",
                "minecraft:warm_ocean",
                "minecraft:deep_lukewarm_ocean",
                "minecraft:lukewarm_ocean",
                "minecraft:deep_ocean",
                "minecraft:ocean",
                "minecraft:deep_cold_ocean",
                "minecraft:cold_ocean",
                "minecraft:old_growth_pine_taiga",
                "minecraft:old_growth_spruce_taiga",
                "minecraft:taiga",
                "minecraft:windswept_forest",
                "minecraft:windswept_hills",
                "minecraft:windswept_gravelly_hills",
                "minecraft:stony_shore",
                "minecraft:deep_frozen_ocean",
                "minecraft:frozen_ocean",
                "minecraft:frozen_river",
                "minecraft:snowy_beach",
                "minecraft:snowy_plains",
                "minecraft:ice_spikes",
                "minecraft:grove",
                "minecraft:snowy_slopes",
                "minecraft:snowy_taiga",
                "minecraft:frozen_peaks",
                "minecraft:jagged_peaks"
              ]
        }
    }
}

I was just looking for a way to get some other bioms in skygrid. Not a perfect solution, but something I guess.