ExtrabiomesXL / ExtrabiomesXL

The ExtrabiomesXL Minecraft Mod
http://www.minecraftforum.net/topic/1090288-
155 stars 73 forks source link

Lack of IC2 rubber trees? #257

Closed christate closed 11 years ago

christate commented 11 years ago

It looks like the proliferation of biomes with ExtrabiomesXL might be effectively DOSing IC2's attempted allocation of rubber trees (which are essential to use any IC2 components).

IC2's wiki says that rubber trees "...are extremely abundant in Swamp, Forest and Taiga biomes...." and they present the placement chances for those biomes:

"Forest 2-12% chance to generate 1-6 Rubber Trees per chunk. Taiga 0-6% chance to generate 0-3 Rubber Trees per chunk. Swampland 10-30% chance to generate 5-15 Rubber Trees per chunk."

(cf http://wiki.industrial-craft.net/index.php?title=Recipes_and_Resources)

In packaging EBXL with IC2 in more elaborate modpacks, we've noticed an apparent severe lack of rubber trees worldwide. It looks suspiciously like IC2 is able to pursue the above allocation policy in vanilla forest/taiga/swamp biomes, but is not similarly placing rubber trees in the EBXL-added biomes that are nominally similar: Snow Forest, Mountain Taiga, etc. Since vanilla biomes are rather rare in EBXL-driven worlds, the net effect is to make IC2 much less available/useful than intended.

It's not clear how mod-interaction issues like this are best addressed, but I wanted to raise it as an explicit topic here even though I see the possibility that it's best addressed essentially on the IC2 side, e.g. by providing configuration options that expand the range of biomes used for rubber tree placement.

ScottKillen commented 11 years ago

Thank you.

Essentially, Industrialcraft's method of spawning tree's (and lack of active support for ExtrabiomesXL's biomes) means that the frequency of trees will be negatively impacted by the scarcity of biomes.

Other mods (Forestry, future RP2) have addressed this in the following way: Rather than target specific biomes for spawning, these mods at runtime filter the biomelist by humidity and temperature to determine where best to spawn their items. We respect IC2's right to choose how it spawns its rubber trees and suggest this is a possible alternative in the event that the IC2 team also recognizes this as a problem.

IC2 has not published its rubber tree worldgen in its public API, leaving the impression that it wishes to retain sole control over its use.

We will be happy to revisit this issue as necessary to facilitate anything that the IC2 team needs to resolve this issue, if indeed they also see it as an issue.

christate commented 11 years ago

Wow, thanks for the prompt answer. I suspected that something like this might be the root (ahem) of the issue; thanks for the details. It's pretty clear from this that it's up to IC2 to deal gracefully with other mods affecting the biome space. I'll try to take the issue up with them.

ScottKillen commented 11 years ago

I just spoke to RichardG. They will be solving this in an upcoming release.

christate commented 11 years ago

Zomg! That's awesome. Thanks again :)

ScottKillen commented 11 years ago

No...thank you!

Annysia commented 11 years ago

While I am happy to see they are addressing your concerns...it just surprises me that you are not finding many rubber trees from IC2. I have never had this issue and find way more than I could possibly use...even to the point of not needing to make a Forestry farm in order to produce enough rubber.

I am curious if it is a particular group of mods or a mod in combination with IC2 that might be affecting this? We run well over 100 mods on our server (not a mod pack) and this has never been an issue in any world either on SSP or SMP in a variety of biomes....both vanilla and EBXL. It just seems very weird that a few people have this issue whereas many people find them in abundance and am wondering if there is some other cause for it.

keybounce commented 11 years ago

I think that giving mods a config file that lists what biomes they do what behavior is the best choice. I look at Custom Ore Gen, for example, that lets you specify biome specific behavior to support various mods.

But as a quick work-around, can't you use Mystcraft in those modpacks to give you a few vanilla-only biome worlds for your tree farms?

christate commented 11 years ago

This has happened a couple of times, once when running FTB MindCrack, once when running our own modpack that is essentially a stripped down version of that (specifically, removing GregTech, RedPower, and XyCraft, plus maybe a few other things that add ores we didn't care about). I have noticed that initial world seeding seems to strongly affect biome prevalence; for example, some worlds wind up with tons of taiga-like biome, and others almost none. If that's a real effect, then that would suggest that if you lose the biome-variety lottery then you're more prone to rubber-tree-allocation starvation.

Or something like that? :)

ScottKillen commented 11 years ago

I think that giving mods a config file that lists what biomes they do what behavior is the best choice.

The IC2 team has decided on a system like what I described above, as far as i know.

ScottKillen commented 11 years ago

I have had worlds where I have to go on a "rubber expedition."

keybounce commented 11 years ago

I have noticed that initial world seeding seems to strongly affect biome prevalence; for example, some worlds wind up with tons of taiga-like biome, and others almost none.

It's my understanding that vanilla tries to put "snowy" biomes together in large groups. So, for example, a ... I think it was a 4x4 area of biomes would all be snowy or not snowy at a time.

ScottKillen commented 11 years ago

Actually, vanilla generates biomes without regard to their climate, then goes back and places transition biomes (the wiki calls them "technical" biomes) between diverse biomes to ease the transition. (A good example of this is the "beach" biome, which is never generated, but instead placed based on the vicinity of other biomes.)

ScottKillen commented 11 years ago

@christate It has been a while since I looked at the code, but I remember seeing that some seeds generate Hoth-like ice worlds...and this behavior is hardcoded (the game bypasses normal terrain gen) It happens even if you disable all ice/snow biomes.

christate commented 11 years ago

@ScottKillen - I can believe that; I've run into at least one vanilla world that was apparently entirely composed of endless taiga-like snow land. Fortunately, the SMP world that my friends and I have recently spun up, the one in which we're playing Hunting For Rubber, is clearly quite varied in its biome set.

I have to say, alpine villages perched atop glaciers or other mountainous snow biomes are glorious. :)

ScottKillen commented 11 years ago

Agreed! :grin:

ScottKillen commented 11 years ago

btw...thank you for investing the time to make a well thought out report. Greatly appreciated!

christate commented 11 years ago

Oh, please. I work in software engineering; I'd go to hell if I wrote bad bug reports. ;)

ScottKillen commented 11 years ago

yah...I used to also and have the same habit!

keybounce commented 11 years ago

My understanding of the vanilla layout code: http://www.minecraftforum.net/topic/1090288-147-extrabiomesxl-3100-marshes-fixed-d/page__st__2840#entry14235240

Then it assigns "snow areas". As you'll see, it zooms (I think) twice more after it adds snow before it puts in the other biomes, so snow areas are like 8x (or is it 8x8=64 times) 4x4=16x the size of a normal biome.

ScottKillen commented 11 years ago

Ah! But this is not exactly the same as what you said above and beni's description only works for vanilla biomes and the vanilla biomes understanding of "snowy biomes". When you add custom snowy biomes into the mix beni's description is less accurate and doesn't properly describe the final result.

keybounce commented 11 years ago

Alright :-).

The description he gives says that a "snow area" is made roughly 16 biomes in size (4x4, and if I read it correctly a possibility of overlap from adjacency plus "fuzzyness"), and populated with what vanilla considers to be snowy biomes.

You are correct; snowy biomes that vanilla does not consider snowy will not be in that grouping.

Which brings up the next question: Can you get a hook into forge to expand the vanilla "snowy" concept?

ScottKillen commented 11 years ago

This is the fun part...ebxl4 will replace vanilla and we can mark what biomes we consider to be snowy...but the new terrain generator actually create logical snowy regions, rather than zooming in with tesellator...

and much more can be configured...for a region, you can define a set of biomes for the interior and edge/border biomes...you can flag which biomes can have rivers through them versus having rivers flow around them....and almost every thing else you can think of.

ScottKillen commented 11 years ago

Sorry...a direct answer to your question: no, but there are forge hooks to replace certain terrain gen routines..and thus you can "simulate" affect the "snowy" biome set in this way bypassing the vanilla code.

christate commented 11 years ago

It occurs to me (as we wander a bit afield from the original rubber-tree issue to other resource-placement behaviors) whether EBXL has a similar effect on witch-hut occurrence. I don't know the core game's allocation policy for them but I do have a notion that they're sited specifically in swamp biome. That would make them sensitive to the same kind of issues as rubber trees: if Minecraft itself is looking strictly for that vanilla biome, then they'll be quite rare compared to a vanilla world-build, due to the relative scarcity of pure swamp.

(Contrast that with the evident abundance of villages in EBXL-driven worlds.)

O! the joy of hijacking a sophisticated program's operation on the fly. :)

ScottKillen commented 11 years ago

Yes. Witch hut spawns were hardcoded to swamps by Mojang (as were nighttime surface slime spawns) and could not be changes without core edits, until recently. Hooks have now been added to MinecraftForge/MinecraftForge to control these and this feature will be addressed in ebxl4.

christate commented 11 years ago

Excellent news! Have I mentioned how much I love EXBL? ;)

ScottKillen commented 11 years ago

:heart: