Jump to content

(Solved) [1.14.4] How do I add my custom biome to the default-worldtype?


Recommended Posts

Posted (edited)

(Sorry for bad english)

Hey guys, I'm new here, please be lenient with me if I say something stupid. I'm currently working on a custom biome. In the Buffet-worldtype, I can choose my biome and it already works as I want. The only problem is, that it does not generate in the "default" world type. I'm pretty sure about that, because I made it generate the EndCity-structure in said biome, which I can find via /locate in the "Buffet-world", but I cannot find it in the "Default-world".

 

This is my custom biomes' class:

public class WetForestBiome extends WoodsBiome {
    public WetForestBiome() {
        super((new Biome.Builder()).surfaceBuilder(new ConfiguredSurfaceBuilder<SurfaceBuilderConfig>(SurfaceBuilder.DEFAULT, new SurfaceBuilderConfig(Blocks.GRASS_BLOCK.getDefaultState(), Blocks.DIRT.getDefaultState(), Blocks.DIRT.getDefaultState()))).precipitation(Biome.RainType.RAIN).category(Biome.Category.FOREST).depth(-0.05F).scale(0.1F).temperature(0.7F).downfall(0.8F).waterColor(0x007a49).waterFogColor(0x007a49).parent("forest"));
        this.addStructure(Feature.END_CITY, IFeatureConfig.NO_FEATURE_CONFIG);
        //some irrelevant this.addSpawn() and DefaultBiomeFeature features
   

 

This is the class above my custom biome (not sure how to say it in english)

public class WoodsBiome extends Biome {

    protected WoodsBiome(Builder biomeBuilder) {
        super(biomeBuilder);
    }

    public boolean doesMossGenerate(IWorldReader worldIn, BlockPos pos) { //I don't think this function is relevant for my problem but I'll leave it here ^^
        if (this.func_225486_c(pos) >= 0.15F) {
            return false;
        } else {
            BlockState blockstate = worldIn.getBlockState(pos);
            if (blockstate.isAir(worldIn, pos) && BlockList.moss.getDefaultState().isValidPosition(worldIn, pos)) {
                return true;
            }
            return true;
        }
    }
}

 

And this is my biomes class, where the biome is registered:

@net.minecraftforge.registries.ObjectHolder(WoodsMain.MOD_ID)
public class Biomes {
    public static Biome WET_FOREST_BIOME = new WetForestBiome();

    public static void registerBiomes() {
        registerBiome(WET_FOREST_BIOME, Type.FOREST);
    }

    public static void registerBiome(Biome biome, Type...types) {
        BiomeDictionary.addTypes(biome, types);
        BiomeManager.addSpawnBiome(biome);
    }

    static {
        Collections.addAll(Biome.BIOMES, WET_FOREST_BIOME);
    }
}

 

As I said, it completely works in Buffet-mode. How can I make it to be generated in normal Minecraft-worlds?

Do you need any more files/classes? Many thanks in advance for your effort :)

Best regards, Manu

 

Edit: forgot to say I'm using Forge 28.1.107 for Minecraft 1.14.4

Edited by PianoManu
Posted

Nevermind, I found a solution.

I made a class with a setup() method (which I call in my main class)  that uses the BiomeManager.addBiome-function and it works now

 

public static void setup() {
    for(Biome biome : ForgeRegistries.BIOMES) {
        BiomeManager.addBiome(BiomeManager.BiomeType.WARM, new BiomeManager.BiomeEntry(BiomesList.WET_FOREST_BIOME, 20));
        BiomeManager.addSpawnBiome(BiomesList.WET_FOREST_BIOME);
        BiomeProvider.BIOMES_TO_SPAWN_IN.add(BiomesList.WET_FOREST_BIOME);
    }
}

Thanks Y'all, see you

  • Confused 1
  • 4 months later...
Posted
On 1/27/2020 at 10:55 AM, Ommina said:

I'm... confused by this.  Why the loop?

 

To be honest, I don't know anymore why I used the loop. It's not necessary. I guess I was very tired when I created this :D

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.