ExterminatorJeff / UndergroundBiomes

Underground Biomes Mod for Minecraft
15 stars 6 forks source link

Game stuck at 'building terrain' when combined with Terrain Control mod #10

Open chuiu opened 10 years ago

chuiu commented 10 years ago

I don't know if this is a problem with your underground biomes, with terrain control, or just a general 'both mods can't do this at once' sort of thing. But I've been making tons of custom made biomes with Terrain Control and I wanted to vary the stone found in my world as well so I thought I would try combining the two. Unfortunately the world gets stuck generating.

It would be awesome if there was something you guys could do to make the mod compatible. If not, then I can deal with it, your mod is awesome regardless!

grompe commented 10 years ago

Where can I get Terrain Control to test and look into it?

chuiu commented 10 years ago

http://dev.bukkit.org/bukkit-plugins/terrain-control/files/

Those are all bukkit and forge compatible versions. I'm using the 1.6.2 version, v2.4.14.

grompe commented 10 years ago

OK, with UB v0.4.2b and TerrainControl v2.5.0 I'm getting an exception (Already decorating) in UB class BiomeUndergroundDecorator. Looking into it.

chuiu commented 10 years ago

Yay, progress? I'm going to call it progress, I couldn't even get the thing to crash on me to give you guys a crash report.

rutgerkok commented 10 years ago

@grompe

I'm one of the maintainers of Terrain Control. The following crash report popped up:

---- Minecraft Crash Report ----
// This doesn't make any sense!

Time: 27-9-13 20:31
Description: Exception getting block type in world

java.lang.RuntimeException: Already decorating!!
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.decorate(BiomeUndergroundDecorator.java:28)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeGenUndergroundBase.decorate(BiomeGenUndergroundBase.java:162)
    at exterminatorJeff.undergroundBiomes.common.WorldGenManager.onBiomeDecorate(WorldGenManager.java:53)
    at exterminatorJeff.undergroundBiomes.common.UndergroundBiomes.onBiomeDecorate(UndergroundBiomes.java:525)
    at net.minecraftforge.event.ASMEventHandler_8_UndergroundBiomes_onBiomeDecorate_Post.invoke(.dynamic)
    at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    at net.minecraftforge.event.EventBus.post(EventBus.java:108)
    at com.khorn.terraincontrol.forge.EventManager.onPopulateEnd(EventManager.java:91)
    at com.khorn.terraincontrol.TerrainControl.firePopulationEndEvent(TerrainControl.java:437)
    at com.khorn.terraincontrol.generator.ObjectSpawner.populate(ObjectSpawner.java:86)
    at com.khorn.terraincontrol.forge.ChunkProvider.func_73153_a(ChunkProvider.java:92)
    at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:258)
    at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1243)
    at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:153)
    at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:166)
    at net.minecraft.world.World.func_72964_e(World.java:529)
    at net.minecraft.world.World.func_72798_a(World.java:414)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.replaceBlocksForUndergroundBiome(BiomeUndergroundDecorator.java:49)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.decorate(BiomeUndergroundDecorator.java:33)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeGenUndergroundBase.decorate(BiomeGenUndergroundBase.java:162)
    at exterminatorJeff.undergroundBiomes.common.WorldGenManager.onBiomeDecorate(WorldGenManager.java:53)
    at exterminatorJeff.undergroundBiomes.common.UndergroundBiomes.onBiomeDecorate(UndergroundBiomes.java:525)
    at net.minecraftforge.event.ASMEventHandler_8_UndergroundBiomes_onBiomeDecorate_Post.invoke(.dynamic)
    at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    at net.minecraftforge.event.EventBus.post(EventBus.java:108)
    at com.khorn.terraincontrol.forge.EventManager.onPopulateEnd(EventManager.java:91)
    at com.khorn.terraincontrol.TerrainControl.firePopulationEndEvent(TerrainControl.java:437)
    at com.khorn.terraincontrol.generator.ObjectSpawner.populate(ObjectSpawner.java:86)
    at com.khorn.terraincontrol.forge.ChunkProvider.func_73153_a(ChunkProvider.java:92)
    at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:258)
    at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1253)
    at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:153)
    at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:294)
    at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:90)
    at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:107)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.decorate(BiomeUndergroundDecorator.java:28)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeGenUndergroundBase.decorate(BiomeGenUndergroundBase.java:162)
    at exterminatorJeff.undergroundBiomes.common.WorldGenManager.onBiomeDecorate(WorldGenManager.java:53)
    at exterminatorJeff.undergroundBiomes.common.UndergroundBiomes.onBiomeDecorate(UndergroundBiomes.java:525)
    at net.minecraftforge.event.ASMEventHandler_8_UndergroundBiomes_onBiomeDecorate_Post.invoke(.dynamic)
    at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    at net.minecraftforge.event.EventBus.post(EventBus.java:108)
    at com.khorn.terraincontrol.forge.EventManager.onPopulateEnd(EventManager.java:91)
    at com.khorn.terraincontrol.TerrainControl.firePopulationEndEvent(TerrainControl.java:437)
    at com.khorn.terraincontrol.generator.ObjectSpawner.populate(ObjectSpawner.java:86)
    at com.khorn.terraincontrol.forge.ChunkProvider.func_73153_a(ChunkProvider.java:92)
    at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:258)
    at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1243)
    at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:153)
    at net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:166)
    at net.minecraft.world.World.func_72964_e(World.java:529)

-- Requested block coordinates --
Details:
    Found chunk: true
    Location: World: (0,1,-12), Chunk: (at 0,0,4 in 0,-1; contains blocks 0,0,-16 to 15,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Stacktrace:
    at net.minecraft.world.World.func_72798_a(World.java:414)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.replaceBlocksForUndergroundBiome(BiomeUndergroundDecorator.java:49)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeUndergroundDecorator.decorate(BiomeUndergroundDecorator.java:33)
    at exterminatorJeff.undergroundBiomes.worldGen.BiomeGenUndergroundBase.decorate(BiomeGenUndergroundBase.java:162)
    at exterminatorJeff.undergroundBiomes.common.WorldGenManager.onBiomeDecorate(WorldGenManager.java:53)
    at exterminatorJeff.undergroundBiomes.common.UndergroundBiomes.onBiomeDecorate(UndergroundBiomes.java:525)
    at net.minecraftforge.event.ASMEventHandler_8_UndergroundBiomes_onBiomeDecorate_Post.invoke(.dynamic)
    at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    at net.minecraftforge.event.EventBus.post(EventBus.java:108)
    at com.khorn.terraincontrol.forge.EventManager.onPopulateEnd(EventManager.java:91)
    at com.khorn.terraincontrol.TerrainControl.firePopulationEndEvent(TerrainControl.java:437)
    at com.khorn.terraincontrol.generator.ObjectSpawner.populate(ObjectSpawner.java:86)
    at com.khorn.terraincontrol.forge.ChunkProvider.func_73153_a(ChunkProvider.java:92)
    at net.minecraft.world.gen.ChunkProviderServer.func_73153_a(ChunkProviderServer.java:258)
    at net.minecraft.world.chunk.Chunk.func_76624_a(Chunk.java:1253)
    at net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:153)
    at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:294)
    at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:90)
    at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:107)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445)
    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)

-- System Details --
Details:
    Minecraft Version: 1.6.4
    Operating System: Windows 8 (amd64) version 6.2
    Java Version: 1.7.0_09, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 345307248 bytes (329 MB) / 553517056 bytes (527 MB) up to 954466304 bytes (910 MB)
    JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx1G
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Suspicious classes: FML and Forge are installed
    IntCache: cache: 2, tcache: 359, allocated: 1, tallocated: 120
    FML: MCP v8.11 FML v6.4.6.884 Minecraft Forge 9.11.0.884 5 mods loaded, 5 mods active
    mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available->Available
    FML{6.4.6.884} [Forge Mod Loader] (minecraftforge-9.11.0.884.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available->Available
    Forge{9.11.0.884} [Minecraft Forge] (minecraftforge-9.11.0.884.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available->Available
    TerrainControl{2.5.0} [Terrain Control] (TerrainControl.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available->Available
    UndergroundBiomes{0.4.2a} [Underground Biomes] (UndergroundBiomes.zip) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available->Available->Available
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Player Count: 0 / 8; []
    Type: Integrated Server (map_client.txt)
    Is Modded: Definitely; Client brand changed to 'fml,forge'

As you can see, Terrain Control's populator code is called. When Terrain Control is done, it fires the PopulateEnd event, which calls your code. Your code causes another chunk to be populated, which fails.

The new chunk is loaded by the following line:

if(currentWorld.getBlockId(x, y, z) == Block.stone.blockID)

It looks like the x or z coord is incorrect.

Maybe Terrain Control is not firing the event correctly? TC calls the event assuming the x and z are chunk coords, while it seems that your code assumes that the x and z are block coords.