BiomeTweaker

BiomeTweaker

13M Downloads

BOP + Filler Block issue?

davqvist opened this issue ยท 30 comments

commented

MC 1.10.2
Forge 2281
Biometweaker 2.3.239

Not sure if relevant, just in the case it is, I explain my setup.
As Biometweaker can't be made dimension specific, I use BOP biomes on other dimensions while using vanilla biomes on Earth. I use Advanced Rocketry to create a planet only with the Volcanic Island Biome (the main feature is generating topBlock and fillerBlock as Ash) and use Just Enough Dimensions to spawn on that dimension when you enter the world.

What I want to do, is replace everything but the Ash with EnvironmentalTech Basalt. So if I understood it correctly you do that with registerGenBlockRep, but to make sure that the topBlock and the fillerBlock are also still generated, I have to set addActualFillerBlock also to Basalt. But here comes the problem: Still the whole world is nothing but Basalt and Water, the topBlock and fillerBlock doesn't have an effect. I tried setting and overriding the topBlock and fillerBlock myself without any effect either. I also found the config option "remove late block assignments" but neither false or true solves the issue (I didn't fully understand what this config option does). I also noticed that if I go into spectator mode, no caves are generated while when I remove registerGenBlockRep, there are caves.

Here is the code to the VolcanicIsland Biome, maybe you can find something: https://github.com/Glitchfiend/BiomesOPlenty/blob/BOP-1.10.2-5.0.x/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenVolcanicIsland.java

This is my script currently: https://pastebin.com/ME5Cci5y
And here the log: https://pastebin.com/jx3NSVws

Let me know if you need more info.

commented

Have you added the scripts to the include section, or put them in the scripts folder? I don't see anything in the log about the scripts.

commented

I put the script in the include section.
And the line where the scripts are applied are in the log:
[09:48:27] [Client thread/INFO]: Found 4 tweaks to apply for stage FINISHED_LOAD. Applying...

I'm pretty sure that's it, right?

commented

Ah, yes, that's it. Usually logs have the mod that the line came from. From what I can tell, your scripts are fine. I'll have to do some testing myself to figure it out.

commented

Thanks a lot, I appreciate it.

commented

Quick update: I was working with the dev of Just Enough Dimensions on some other issues which are resolved now. And now the Lava Lakes that are supposed to generate are generating as well while before it was only Basalt and Water. But this caused another issue: The Lava Lakes generate with a layer of stone around them as you can see in the link in the OP and here: https://github.com/Glitchfiend/BiomesOPlenty/blob/BOP-1.10.2-5.0.x/src/main/java/biomesoplenty/common/world/generator/GeneratorLakes.java under lavaLake() lineWith. The Lava Lakes generate early enough that its stone gets overwritten by ores and such, but apparently too late for BiomeTweaker to affect the replacement of Basalt.

I only found removeGeneratorBOP which would be of course the last resort, but I also found setStage which changes the order of when things happen. I'm not sure what to set it to though or how to debug this properly. Can you tell me what I can set it to to try or if you can change something internally to change the order of replacement.

commented

I just wanted to ask if you're still working on it or planning to figure it out. Because I need to know if I have to stop investing in my new pack and scratch my idea if I can't make the terrain gen like I want to.

commented

What needs to be done to fix this issue is a lot of work for what it's worth. Honestly, I would love to implement it, but I can't give any time estimates. I'm on summer break now, so I'll have more time to work on this. But again, I can't guarantee anything... I know you need it done for your modpack to work -- I really wish I could just make it work for you.

commented

Thanks for taking the time to answer. So it seems, you know what the issue is and have a rough guess how to fix it. IRL has of course priority, so if you can't fix it, no problem. But sure, I would really love of course if you could take the time to fix it.

commented

The features you need to fix this are now available. Once version 3.0 is released, I will comment here on how to fix your issue.

commented

Oh this is awesome news. Let me definitely know how to do it. Thank you so much.

commented

Now that nearly 4 weeks have passed, I just wanted to ask if there is an ETA for the new release. If the release is not ready for public yet, maybe you can hook me up with a beta version that I can already test if it works for me. Thanks for your work.

commented

Thanks for reminding me! A released a beta version a few days ago. Unfortunately, it's only for 1.11.2, so I hope that works for you.
https://minecraft.curseforge.com/projects/biometweaker/files/2436688

You're going to want to use the setPlacementStage command. This will allow you to tell BiomeTweaker when to do replacement. I'm not sure what stage you'll want to use... It's a bit strange that the stone is being replaced by ores, given that ores should generate before any decorations. You'll probably want to use either "PRE_ORES" or "POST_ORES".

Tweaker.setPlacementStage("PRE_ORES") # Tell BT to do this replacement right before ores are placed
standardBiome.registerGenBlockRep("minecraft:stone", "environmentaltech:basalt") # Register the replacement
Tweaker.setPlacementStage("BIOME_BLOCKS") # Reset back to default value. Not required.
commented

Thanks for answering. I would love to move to 1.11, but the problem is so many mods that are required for my pack to work are still only 1.10, so I either have to wait and hope that those mods get ported or (what I would prefer) is if you could add this feature to 1.10. Not sure how hard this would be for you.

commented

I would have to backport pretty much everything else as well. It's actually time to start looking forward to 1.12. I'm afraid to say it isn't likely that I'll find time to backport everything I changed in v3.0.

commented

Good to know, thanks for your hard work. I know that it's time to move on and I would if I could, but not every dev finds the time to update their mods. I will try to port to 1.11 ASAP.

commented

Hi again. many mods are skipping 1.11 all together, so I'm currently working in 1.12 now. So I was just wondering, if you are working on a 1.12 port atm?

commented

I've already ported it. Dev versions are available for 1.12.

commented

Oh sweet. But I would need to build it myself I assume?
Or where can I get it from?

commented

No. Every single change I make is built into a dev version. They are all available on my Jenkins server.

http://jenkins.superckl.me

Once I believe a build has been thoroughly tested, I release it as a Beta or Release version on CurseForge.

commented

Nice, didn't know about your jenkins. I will start testing soon and then I can give you already feedback if you want. Thanks a lot.

commented

I'll look into this soon... Please provide a full client log for anything you find that isn't working.

commented

Of course sorry, I didn't because I thought it was my fault.

https://gist.github.com/davqvist/bc30d827ebf6bbcfe8143b041fdb2849

commented

Your log doesn't have any debug messages. Make sure you're uploading the correct 'fml-client-latest.log' file. If you're using a launcher, you may need to adjust your logging level.

BiomeTweakerCore has also been updated to 1.12.1. The Jenkins has the appropriate builds.

commented

Testing right now. I see I need BiomeTweakerCore now. I'm in 1.12.1 as basically nothing got changed, but Core Mods get ignored for different versions. Could you please do BiomeTweakerCore for 1.12.1?

commented

Okay I tested a bit and it finally works much better than before. But the PRE_ORES stage doesn't seem to work, I still get all ores and also the stone variants, gravel and much more that should generate after it. This is my current code:

standardBiome = forBiomes(102)
allExceptStandard = forAllBiomesExcept(102)
allBiomes = forAllBiomes()

standardBiome.set("topBlock", "biomesoplenty:ash_block")
standardBiome.set("fillerBlock", "biomesoplenty:ash_block")
standardBiome.addActualFillerBlock("chisel:basalt")
standardBiome.removeFeature("DUNGEON")

Tweaker.setPlacementStage("PRE_ORES")
standardBiome.registerGenBlockRep(8, "minecraft:stone", "chisel:basalt2")
standardBiome.registerGenBlockRep(2, "minecraft:stone", "chisel:basalt")

standardBiome.set("isSpawnBiome", true)
commented

There should be another log file called 'fml-client-latest'. That's the file I need.

commented

Uhm, no. In 1.12 there is only a latest.log. Have seen the fml-client-latest only in 1.10.

commented

Now I feel stupid sorry. I grabbed the logs/latest.log, but I have no idea how to adjust the logging level. Is this a java start parameter? Sorry for the dumb question, couldn't find anything in a google search,

commented

I'm not sure what to tell you then. Are you using a specific launcher that modifies the logs? No matter what launcher I use, I always see these files:

fml-client-latest.log
fml-junk-earlystartup.log
latest.log
commented

I have verified that any replacement stage after "BIOME_BLOCKS" allows ores and other features to generate when they shouldn't. I will be looking into this soon. For now, I'm moving it to a new issue.