BiomeTweaker

BiomeTweaker

13M Downloads

How would I use a mix of biome ID's and types for an exclusion?

keybounce opened this issue ยท 8 comments

commented

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?

commented

Ability to subtract objects (as well as intersect):

http://jenkins.superckl.me/job/BiomeTweaker/95/

Mind giving it a go?

commented

I'll give it a go / test on saturday :-). (Jampack is due on friday)

commented

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?

commented

Ahh ... I can work with that

commented

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.

commented

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.

commented

I guess, what I'd be looking for is some sort of "subtract X from this set" operation.

We can merge sets. But "subtraction" only exists in the sense of "subtract this from the set of all biomes".