Terrain Control

Terrain Control

235k Downloads

[2.6.1] Forge Generated worlds double mod-added decoration.

talonos2 opened this issue ยท 4 comments

commented

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.

2014-09-10_12 57 52

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.

commented

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 ๐Ÿ˜„ .

commented

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.

commented

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 click Create Pull Request button on your fork.
  • Edit the title and description and click Send Pull Request.
commented

Thanks! That was less painful than anticipated.