if you want to use this API in your mod, you need to implement it to your build.gradle
.
To get the library, you'll need to add the Curse Maven repository in your build.gradle
.
paste the following block after the repositories
section in your build.gradle
:
maven {
url = "https://www.cursemaven.com"
}
You'll next need to implement the API as a dependency on your project and tell Forge to deobfuscate it. In the dependencies
block paste in the following:
implementation fg.deobf("curse.maven:cavebiomeapi-projectID:fileID")
The fileId can be found on the end of the link of the file on CurseForge, and the projectId can be found in the project sidebar. For example, the projectId of 441706
along with the fileId of 3489595
would add CaveBiomeAPI 1.16.5-1.4.0 as a dependency.
Once you've done the steps above, you now need to reload the Gradle project. This can differ from IDE to IDE, so we can't give explicit details on how. On most IDEs, just follow the steps you would when setting up your mod environment.
You'll need to tell Forge that the API is a hard-dependency for your mod, this means that the API will be required to run your mod. At the bottom of your mods.toml
file paste the following:
[[dependencies.<modid>]]
modId="cavebiomeapi"
mandatory=true
versionRange="[x.x.x,)"
ordering="AFTER"
side="BOTH"
Replace <modid>
with your mod's id of course. Set the versionRange
to the version you chose on CurseForge.
That's it! You should now have CaveBiomeAPI in your workspace and as a required dependency. Any issues you find should be reported to the Issue Tracker.
We tried to make this API as simple as possible, so simple that you'll have your own cave biome in no time
Creating a cave biome is not really complicated, you follow the same steps that you do to create a default biome,
you can use both the Deferred Registries
or the Vanilla Registry
methods, any of them will work with this API so you don't have to worry about them
We don't recommend using features that are used in the surface while creating a biome like using DefaultBiomeFeatures.withDisks
because these features will generate in the surface in biomes where they don't belong, such as swamps.
Injecting the cave biome is the easiest and most complicated part of this API, all you have to do is initialize it by using the following method:
CaveBiomeAPI.addCaveBiome(biome, new Biome.Attributes(temperature, humidity, altitude, weirdness, offset));
It won't be always Biome.Attributes
, if you're using the official mappings they will be replaced by Biome.ClimateParameters
or at least that's how i've seen it working in 1.17
If you are familiar with MultiNoise
you'll catch this up pretty quickly, if not then don't worry, you'll learn how to use it in no time.
The biome
parameter will call for the cave biome that you want to inject.
MultiNoise works with 4 different noise parameters which modify the biome distribution, i could explain it myself but one of the Devs of Minecraft actually made a video explaining how MultiNoise works and with graphic examples right here.
As an extra feature, a cool person called Misode made a cool tool which will help you to preview biome generation and it does support MultiNoise you can find the tool here and i've made an example json file that you can use to preview the cave biome generation using the 1.17 cave biomes, just paste it in the json holder of the website and mess with the values until you like it.
Once you're happy with the results just add them into the method and remember to initialize it, here's an example using the vanilla caves:
CaveBiomeAPI.addCaveBiome(Biomes.DRIPSTONE_CAVES, new Biome.Attributes(0.0F, 0.0F, 0.8F, 0.0F, 0.0F));
CaveBiomeAPI.addCaveBiome(Biomes.LUSH_CAVES, new Biome.Attributes(0.0F, 0.7F, 0.0F, 0.0F, 0.0F));
After injecting the cave biomes you can proceed to run the game and you'll find your cave biomes generating in the underground and ready to go. If by any chance you have any more further questions or you're having some difficulties while following these steps feel free to contact me in my discord server, i'm very active and always glad to help