Open chuiu opened 10 years ago
Where can I get Terrain Control to test and look into it?
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.
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.
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.
@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.
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!