BiomeTweaker

BiomeTweaker

13M Downloads

topBlock + fillerBlock + addActualFillerBlock issue

Sir-Will opened this issue ยท 44 comments

commented

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

commented

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.

commented

Have you tried it, or are you just guessing?

commented

You mean tried without actualFillerBlock? Yes I did.

commented

What exactly are you trying to achieve with the script?

commented

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.

commented

Do you want to replace the grass, dirt, or stone?

commented

Grass

commented

What do you mean by the grass generates in water as well?

commented

I mean the decoration of grass not the grass block.

commented

Have you tried the removeDecoration command? Use the parameter "GRASS".

commented

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.

commented

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.

commented

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.

commented


https://gist.github.com/SirWilli/c5393e90dddf238e0cf3

I also spawned in the ocean again and couldn't find any error about this in the log

commented

I was able to properly set the topBlock to "ExtrabiomesXL:terrain_blocks1", with a different fillerBlock. I had Quadrum installed as well, but I'll need your configuration to test it properly on my side. I'm honestly not sure what the problem is for you.

2015-11-22_13 52 26

commented

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.

commented

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?

commented

Seems to be specific biomes, beach and swampland looks fine while extreme hills does have grass as topBlock

commented

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?

commented

"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...

commented

It's the first command you use in your script...

commented

Yea, I realized that after I created the comment.

commented

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.

commented

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

commented

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!

commented

Okay but what to do about the grass, dirt and so on

commented

@superckl any idea what causes the issue?

commented

The thing you just described is detailed here. As for the actual weirdness, no, I don't have a clue.

commented

After removing the first 10 lines the issue exists too, so seems it is not related to the remove() or registerGenBiomeRep

commented

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.

commented

I think that fixed it but I need to do some more testing soon, thanks.

commented

Let me know if it doesn't work out. Anything else still a problem?

commented

I take that back, it's not. Looking into it.

commented

I couldn't find any biome with grass blocks so it looks all fine but the gravel issue in the ocean is still there.

commented

Are you sure you're setting the topBlock in the ocean?

commented

Yea, allBiomes = forAllBiomesExcept(8, 9)

commented

Do you have any other mods installed that change oceans? It's working fine for me.

commented

Going to make a new command for this when I have time.

commented

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.

commented

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.

commented

I assume this 2 replace oceanBlock?

Edit: Seems to work great, thanks.

commented

Looks fine thanks but there seems to be another layer which doesn't get replaced:

commented

Is there any way to override the meta ID of the mesa biomes?

commented

No. Mesas are a hard-coded mess of generation badness. If they aren't necessary, I would recommend replacing them.