[2.6.1] Forge Generated worlds double mod-added decoration.
talonos2 opened this issue ยท 4 comments
If you have mods that add their own world-gen, then any terrain-control worlds will double generation of that content.
How to reproduce:
1: Have a single-player forge environment set up. (I use the most recent dev build of forge.)
2: Put both Terrain Control and Thaumcraft in the mods folder.
- Thaumcraft dev version available here: https://dl.dropboxusercontent.com/u/47135879/Thaumcraft-deobf-1.7.10-4.2.0.1.jar
- Thaumcraft release version available here: https://dl.dropboxusercontent.com/u/47135879/Thaumcraft-1.7.10-4.2.0.1.jar
3: Generate a new world, Creative mode, generater type Terrain Control.
4: Use creative mode to give yourself goggles of revealing. Equip them.
5: Navigate to x=8, z=394. You will see two identical aura nodes, generated one on top of the other.
I have seen in your 1.6.4 version temples generating on top of each other, pyramids generating on top of each other, and witch huts on top of each other. I have yet to run across this in 1.7.10, but also have yet to verify that it does not happen.
I managed to fix this in a 1.6.4 version of Terrain Control I decompiled and recompiled myself, but have yet to fix it with 1.7.10. If I do fix it, what should I do? I'm using 2.6.1 because it's the most recent version you say is compatible with forge, but I don't know how that affects pull requests. I've never used GitHub before. :/
NOTE: Untested in MCPC, Cauldren, or anything other than plain, straight forge. MCPC worked in the 1.6.4 version I used, but I haven't tested with anything else.
The 2.6.2 version was a little rushed, as BukkitDev was closing down, so something compatible with CraftBukkit 1.7.10 had to be uploaded before the approvals stopped. Shortly after the 2.6.2 was uploaded the bug in reobfuscation was fixed. The code in the repo works fine on Forge.
A pull request would be welcome, but if you just post the code needed to fix this in a comment here it too should be very easy for us to fix the bug. It seems you have already found the cause, which is arguably the hardest part of fixing the bug ๐ .
Ah, sweet. I'll use the more recent version in my dev workspace, then.
Anyway, I fixed it by commenting out line 114 in com.khorn.terraincontrol.forge.events.EventManager.java. As far as I can tell, the GameRegistry.registerWorld function is called by minecraft forge itself in the Chunk provider, but my knowledge of world generation is admittedly shaky. At any rate, it fixed the issue with two nodes generating, but I'm not sure if it has any unintended ramifications.
If you're feeling generous, could you link me to a tutorial on pull requests? I am trying to apply for a Game Dev internship in November, and one of the things they ask for on your resume is a link to your Github profile so they can see how much you've been assisting with open source projects, which is a problem because I've only ever used assembla. If you don't mind, I might like to make the change so I can start building a profile of friendliness.
Thanks! The method is indeed called twice - from ChunkProviderServer
and from our class.
Some pull request documentation can be found here and here. It basically works like this:
- Fork the repo you want to contribute to. (Button is on the top of this page, but you probably already know that.)
- Clone your forked repo to your computer. (The Github client for Windows/Mac makes this easy.)
- Make the changes and commit them. (again, Github client makes this easy.)
- Push your changes to your fork on Github.
- Click the
Compare and Review
button (green button with just an icon) and clickCreate Pull Request
button on your fork. - Edit the title and description and click
Send Pull Request
.