topBlock + fillerBlock + addActualFillerBlock issue
Sir-Will opened this issue ยท 44 comments
so the wiki says to use addActuaFillerBlock so that topBlock works but then generates default stuff like grass, grass, gravel..
allBiomes.set("topBlock", "ExtrabiomesXL:terrain_blocks1")
allBiomes.set("fillerBlock", "Quadrum:redrock")
allBiomes.addActualFillerBlock("Quadrum:redrock")
Is this a bug or issue in my script? For few areas it works somehow
No, actualFillerBlock
and fillerBlock
are different things. fillerBlock
and topBlock
are what generate that layer of dirt of grass you usually see in world. the actuaFillerBlock
is the 60+ layers of stone underneath that. Unless you're doing what's detailed here, don't use the addActuallFillerBlock
command.
I generate grass via cofh but the issue is that it generates in water too so I thought I just generate a different block below the topBlock like it is with grass, dirt and stone.
Hm, how do I generate it then correctly? Because if I remove the actualFillerBlock
it will not generate the topBlock
. Everything will be out of the Quadrum:redrock
block.
I don't want to remove grass I want to add custom grass (which I currently do with cofh). For that I need a layer of ExtrabiomesXL:terrain_blocks1
above Quadrum:redrock
. That's why I'm trying to get the topBlock
and fillerBlock
to work.
Why doesn't the script
all.set("topBlock", "ExtraBiomesXL:terrain_blocks1)
all.set("fillerBlock", "Quadrum:redrock")
work? Run that script and show me a picture as well as a log file if it doesn't work.
https://gist.github.com/SirWilli/c5393e90dddf238e0cf3
I also spawned in the ocean again and couldn't find any error about this in the log
Hm, that's weird. That's my complete script: http://pastebin.com/z63tj4Q6
I also tried it with minecraft:dirt
instead of the quadrum block and also no effect.
Umm, I'm not entirely sure where that's coming from. Does it seem to be random or is it a specific biome? Only near water?
Seems to be specific biomes, beach and swampland looks fine while extreme hills does have grass as topBlock
I found the issue. It's because of this:
# removes other biomes
notWantedBiomes = forBiomes(21, 3, 140, 158, 3, 131, 133, 34, 162, 25, 149, 151, 156, 157, 163, 37, 165, 20, 28, 192, 164, 166, 167)
notWantedBiomes.remove()
Shouldn't that remove the biomes from the generation?
"should"
BiomeTweaker tells Forge that those biomes shouldn't generate. Whether or not whatever generation you're using (or if they're hardcoded) asks Forge for that information is not up to me. That's why I added the registerGenBiomeRep
command... which also may fail in modded generation if they don't fire the proper events...
Hm, now I found a biome which does have the issue too but is not in the list. (Mega Spruce Taiga = 160) and in the ocean it somehow generates a layer of gravel and stone.
The weird thing is all that only happens if I use addActualFillerBlock, I couldn't find any worldgen "bug" without it. Everything was out of Quadrum:redrock
Oh! I wasn't aware you were replacing all stone with "Quadrum:redrock"... My bad! Then you'll definitely want to add allBiomes.addActualFillerBlock("Quadrum:redrock")
to your script. Sorry!
@superckl any idea what causes the issue?
The thing you just described is detailed here. As for the actual weirdness, no, I don't have a clue.
After removing the first 10 lines the issue exists too, so seems it is not related to the remove()
or registerGenBiomeRep
Regarding the issue of not being able to set the topBlock in some biomes. Open BiomeTweaker's config and locate the remove late block assignments
field:
//Enable this if you want BiomeTweaker to force topBlock and fillerBlock overrides in most biomes.
//This is done by using ASM to strip some assignments that happen in the "genTerrainBlocks" blocks. This will not work for all biomes.
//This WILL cause issues where some biomes will have incorrect top and filler blocks if you do not override them (Extreme Hills (M), Mutated Savannah, Taiga).
//light ASM must be disabled for this to have any effect.
"remove late block assignments":false,
Set it to true. It's disabled by default because it can cause issues if you aren't replacing the blocks for every biome.
I couldn't find any biome with grass blocks so it looks all fine but the gravel issue in the ocean is still there.
Do you have any other mods installed that change oceans? It's working fine for me.
The layer of gravel is hard-coded into biomes. Give this build a shot:
http://jenkins.superckl.me/job/BiomeTweaker/176/
It adds oceanBlock
to the set
command. It's nearly identical to topBlock
in how you use it. e.g.
allBiomes.set("oceanBlock", "minecraft:sand")
This should change that layer of gravel to whatever you set. It may have other consequences elsewhere, but I'm really not sure. I couldn't find anywhere else that the layer of gravel appeared.
All of the hardcoding... sigh
http://jenkins.superckl.me/job/BiomeTweaker/177/
"oceanTopBlock" and "oceanFillerBlock". They do what you would expect. They are different than regular "topBlock" and "fillerBlock", though I would recommend still setting those as well.