Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Stanlyhalo

Members
  • Joined

  • Last visited

  1. Thank you so much, I'll def. keep an eye out for that forum post for when/if you post a sharable multiple biome provider code. Edit*: I'm also probably gonna look at some more of the forge source code to see how the world type generates multiple biomes.
  2. I have a couple custom biomes with designated custom surface builders, although I don't know how to make the kind of biome surface builder I want. So what I am asking, is a walkthrough to how the default biome surface builder works, and how I can create my own to the type of biome I want, this is the default biome surface builder: protected void buildSurface(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, BlockState top, BlockState middle, BlockState bottom, int sealevel) { BlockState blockstate = top; BlockState blockstate1 = middle; BlockPos.Mutable blockpos$mutable = new BlockPos.Mutable(); int i = -1; int j = (int)(noise / 3.0D + 3.0D + random.nextDouble() * 0.25D); int k = x & 15; int l = z & 15; for(int i1 = startHeight; i1 >= 0; --i1) { blockpos$mutable.setPos(k, i1, l); BlockState blockstate2 = chunkIn.getBlockState(blockpos$mutable); if (blockstate2.isAir()) { i = -1; } else if (blockstate2.getBlock() == defaultBlock.getBlock()) { if (i == -1) { if (j <= 0) { blockstate = Blocks.AIR.getDefaultState(); blockstate1 = defaultBlock; } else if (i1 >= sealevel - 4 && i1 <= sealevel + 1) { blockstate = top; blockstate1 = middle; } if (i1 < sealevel && (blockstate == null || blockstate.isAir())) { if (biomeIn.getTemperature(blockpos$mutable.setPos(x, i1, z)) < 0.15F) { blockstate = Blocks.ICE.getDefaultState(); } else { blockstate = defaultFluid; } blockpos$mutable.setPos(k, i1, l); } i = j; if (i1 >= sealevel - 1) { chunkIn.setBlockState(blockpos$mutable, blockstate, false); } else if (i1 < sealevel - 7 - j) { blockstate = Blocks.AIR.getDefaultState(); blockstate1 = defaultBlock; chunkIn.setBlockState(blockpos$mutable, bottom, false); } else { chunkIn.setBlockState(blockpos$mutable, blockstate1, false); } } else if (i > 0) { --i; chunkIn.setBlockState(blockpos$mutable, blockstate1, false); if (i == 0 && blockstate1.getBlock() == Blocks.SAND && j > 1) { i = random.nextInt(4) + Math.max(0, i1 - 63); blockstate1 = blockstate1.getBlock() == Blocks.RED_SAND ? Blocks.RED_SANDSTONE.getDefaultState() : Blocks.SANDSTONE.getDefaultState(); } } } } } So if anyone could walk me through how this works, that would be amazing. Also if someone would tell me the math I would have to do to make a sahara surface builder, that would be awesome.
  3. I got it so it spawns a custom biome in 1.15.2. I have a custom ChunkGenerator, MultiBiomeProvider, and GenerationSettings. Although I'm trying to get my MultiBiomeProvider to be able to provide multiple biomes. How do I accomplish this? Or does anyone already have a premade code to add these in?
  4. Well, I have been trying to make a custom provider, which I will continue to make along with stuff to add to configure sizes of biomes hopefully, and also, okay... I do know Java, but alrighty than.
  5. Would anyone know how to make a WorldType in 1.15.2, I created one in 1.14.4, but now I want to make it in 1.15.2, and also have multiple biomes. On the side if you could, explain how I would make custom recipes that ONLY work when in the WorldType (optional). Please help, I've been at this for a while trying to make the WorldType work.
  6. Well damn, that actually worked, mind explaining why this is?
  7. I'm making a 1.15.2 mod because I wanted to updated my mod from 1.12.2, since there different I just moved all my textures and .JSON files over, and updated them. I uploaded my crash-report file. crash-2020-06-08_11.21.44-client.txt
  8. I have this same issue, but I'm creating a mod, I did copy+paste some of my textures and json files into the newer version and updated them because I'm making an updated version to 1.15.2, why am I getting this now?
  9. I'm just gonna remake it in 1.15.2, and update it from there when new versions come out, also I hate how they have moved a lot more things over to JSON, I know how JSON works, but I would have more flexibility if it was in Java because I can then do events, or some special action.
  10. So I've been making a mod in 1.14.2, but I was wondering how would I update it to 1.15.2, would I probably set up a new project and setup 1.15.2 forge, but how do I update all my stuff? Also, a side question if it's possible to answer, I noticed that now block drops are in JSON and it's different to code events, but why did they move away from having a separate java class file for each block (I kinda liked it better like that)?
  11. So I'm still having a hard time making a world type have two biomes, I checked and got the two biomes to work separately but adding them both to one world type, that's where I'm still running into.
  12. So I just tried instead of: return new OverworldChunkGenerator(world, new SingleBiomeProvider(provider), settings); I can do: return new OverworldChunkGenerator(world, new BiomeProvider(provider), settings); So how could I possibly make it instead of: SingleBiomeProviderSettings provider = new SingleBiomeProviderSettings(); Into just BiomeProviderSettings because I am trying different combos and trying to ctrl+click to open it. Edit*: Figured it out: OverworldBiomeProviderSettings But idk how to add a biome, also how would I do nether & end (maybe answer this after how to add a biome to the OverworldBiomeProviderSettings)?
  13. Well didn't work. Is their a example one that someone has made, because mine just don't work, and how would I add a config to my World Type?
  14. Yup I am currently doing it, and this is what I have so far on my settings: private Biome[] biomes; public ExpansionModBiomeProviderSettings addBiome(Biome[] biomeIn) { biomes = new Biome[biomeIn.length]; for (int i = 0; i < biomeIn.length; i++) { biomes[i] = biomeIn[i]; } return this; } public Biome[] getBiome() { return this.biomes; } Also how would I call addBiome from my WorldType, because it is underlined in red. Edit*: I'm trying to make it so that the WorldType adds a biome list and the biome provider settings will make it a list so that the provider can read one at a time if that's possible.

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.