Posted January 25, 20205 yr (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 January 26, 20205 yr by PianoManu
January 26, 20205 yr Author 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
June 11, 20205 yr Author 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
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.