How would I use a mix of biome ID's and types for an exclusion?
keybounce opened this issue ยท 8 comments
Lets say I'm looking to do something to a bunch of "typical" overworld biomes.
I'm currently using
basicVanilla = forAllBiomesExcept(14, 37-39, 40-58, 163-167)
## EXCLUDE TF !! -- 40-58
# Exclude mesas - 37-39, 165-167
# Exclude savanna M's 163-164
# and mushroom islands (14)
But it's getting complicated. I'm now realizing I need to exclude "hell" (silly me :-), and I really want to exclude type "sandy".
Can you think of a better way to do this?
Ability to subtract objects (as well as intersect):
http://jenkins.superckl.me/job/BiomeTweaker/95/
Mind giving it a go?
http://minecraft.curseforge.com/mc-mods/228895-biometweaker/files/2238153
Make sure it works for you :)
You can retrieve an object that excludes the "hell" and "sandy" types as well as the static ids given by doing the following:
nonVanilla = forBiomes(14, 37-39, 40-58, 163-167)
typedBiomes = forBiomesOfTypes("HELL", "SANDY")
allButTypedAndNonVanilla = forAllBiomesExcept(typedBiomes, nonVanilla)
Is that what you're looking for?
Ok, quick question:
Here's what I have so far, in the re-write
Mesas = forBiomes(37-39, 165-167)
mushroom=forBiomes(14)
beaches = forBiomesOfTypes("BEACH")
rivers = forBiomesOfTypes("River")
plateauNonM = forBiomes(36, 38, 39)
TF = forBiomes(40-58)
sandy = forBiomesOfTypes("Sandy")
nether = forBiomesOfTypes("Hell")
savannaMs = forBiomes(163, 164)
basicVanilla = forAllBiomesExcept(mushroom, TF, nether, sandy, savannaMs, beaches, rivers)
unchanged = forBiomes(savannaMs, TF, nether, Mesas)
targets = forAllBiomesExcept(unchanged)
lavaOceans = forAllBiomesExcept(TF)
sandyTops = forBiomes(beaches, rivers)
myceliumTops = forBiomes(mushroom)
hellify = forBiomes(plateauNonM)
sandyFiller = forBiomes(rivers)
sandstoneFiller = forAllBiomesExcept(rivers, unchanged)
yuckyTops = forAllBiomesExcept(unchanged, sandyTops, myceliumTops, hellify)
I now want to address the plateauNonM's, but not the Mesas. Logically, this would be, not "all biomes except", but "plateauNonM except".
As it turns out, this is only going to be Savanna Plateau -- so it's simple enough to hard-code a single biome ID. But I'm trying very hard to not do that.
I don't think there is a way to do that without explicitly writing "36" somewhere. The id resolution logic isn't smart enough to have exceptions override biome ids that are already there :(
Maybe I'll look into a command or something for that.