MCTCP / TerrainControl

Minecraft Terrain Generator for SpigotMC and Forge
https://www.spigotmc.org/threads/terraincontrol.37980/
MIT License
230 stars 163 forks source link

Cauldron 1.7.10 & TerrainControl 2.6.3 - lengthy question #352

Closed Dockter closed 9 years ago

Dockter commented 9 years ago

Hello,

I have been using TerrainControl for some time under the bukkit server, however about 6 months ago we migrated to Cauldron. We are running Cauldron for 1.7.10 forge build 1448 (we have our own repo).

We noticed on the worlds we migrated from our bukkit server that when users TODAY go to areas on the map that were not previously generated the server generates chunks that don't match up. After a very long search into this issue it appears that when TerrainControl loads its biome data in that it isn't actually making it into the Cauldron server.

When we try to create a new world using Multi-Verse, /mv create newWorld normal -g TerrainControl the world is created, the populators on the chunks run as I would expect them to except its missing all of the custom biomes.

Our servers log files looks like this when it is generated:

http://pastie.org/pastes/10373415/text?key=z90lq0if1t5bj6gtuldrqw

I have asked several developers within the Sponge community, Blood, Zidane, Gabizou etc their thoughts on the issue. Blood's thought was to generate the world using the forge version TC which I tried AND does work however it makes certain plugins that control generation impossible since Multi-Verse can't talk mods. I also encountered an issue where I cannot force generate another world name within Cauldron itself.

Zidane's thought to solve the issue was to generate the entire map using the Forge version, move the world into the appropriate subfolder under world in Cauldron then allow Multi-Verse to import it. Whereas that may work the world I am generating is based off of a map.png file. Generated completely it is around 70gb in size not counting Dynmap's images.

With either suggestion it was discovered that once generated if we moved the worlds back to having the Bukkit version of TC control the worlds after generation that the biomes would suddenly disappear. Area's that were previously generated as deserts would suddenly have snow in them.

My question is are you aware of an issue where TerrainControl appears to load the biome data at the server but it never makes it into the generator itself?

Our server has been online since 2011. Our developer repos are located at https://www.github.com/AlmuraDev/ I am willing to make a donation to your cause if you could assist us in solving this issue. I realize that this is supporting a previous version but I thought I would start with you folks first.

rutgerkok commented 9 years ago

What I found interesting is that a desert turned into a snow biome. This means that the server recognizes the biome (otherwise it would be listed as the ocean biome, and wouldn't have snow). Are you running multiple TerrainControl-enabled worlds on the server? If yes, are there biomes with overlapping ids?

Assuming the answer is yes on the previous two questions: two biomes on the server can't share the same id but have different properties, even if they are in different worlds. If this is the case, your best option is probably to make sure that two biomes with the same id are actually quite similar.

If, on the other hand, you're running only one TerrainControl world on a server, then I have no idea what is happening. Maybe you can find some workarounds to get the Forge version of TerrainControl working on Cauldron? You mentioned that it makes certain plugins that control generation impossible since Multi-Verse can't talk mods. I also encountered an issue where I cannot force generate another world name within Cauldron itself., but maybe that can be worked around, for example if you use TerrainControl for your main world.

However, I have little confidence that I can solve this error. Have you got TerrainControl to work on Cauldron previously? If you look through the bug tracker, you can see that I haven't been able to solve most Cauldron-related issues. Cauldron uses a ton of hacks to get both Bukkit plugins and Forge mods working, and TerrainControl uses a ton of hacks to get around the limited Bukkit API, and the two don't work well together.

Dockter commented 9 years ago

The main issue from what debugging has shown me is that Cauldron's world generator isn't using the biome data that TerrainControl loads in. TC obviously has some control otherwise the populator data wouldn't be working either. Its like where ever in the code the biomes get loaded, Cauldron ignores them.

Dockter commented 9 years ago

This turned out to be a config issue and a map.png issue.

After I forked your repo as 1.7.10 and stuck in a bunch of debugging I determined that it wasn't reading the FromImage file correctly. I also noticed that it ran into errors and changed the setting in the config file from BiomeMode: FromImage to BiomeMode: Normal by itself.

Once I resolved the image file being read correctly, all was working.

rutgerkok commented 9 years ago

Glad you solved it, but strange that TC didn't print something in the console that it was switching biome modes.