diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index 4e058672..a540a886 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -264,6 +264,8 @@ public class BuildCraftCore extends BuildCraftMod { private static FloatBuffer pos = ByteBuffer.allocateDirect(3 * 4).asFloatBuffer(); + public Thread serverThread; + @Mod.EventHandler public void loadConfiguration(FMLPreInitializationEvent evt) { SchematicRegistry.declareBlueprintSupport("BuildCraft|Core"); @@ -435,6 +437,7 @@ public class BuildCraftCore extends BuildCraftMod { @Mod.EventHandler public void serverStarting(FMLServerStartingEvent event) { + serverThread = Thread.currentThread(); event.registerServerCommand(new CommandBuildCraft()); } diff --git a/common/buildcraft/core/utils/DimensionProperty.java b/common/buildcraft/core/utils/DimensionProperty.java index 8530a813..ede59290 100755 --- a/common/buildcraft/core/utils/DimensionProperty.java +++ b/common/buildcraft/core/utils/DimensionProperty.java @@ -17,6 +17,7 @@ import net.minecraft.world.IWorldAccess; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; +import buildcraft.BuildCraftCore; import buildcraft.core.TickHandlerCore; public class DimensionProperty implements IWorldAccess { @@ -54,7 +55,9 @@ public class DimensionProperty implements IWorldAccess { private void load(Chunk chunk, ChunkProperty property) { synchronized (TickHandlerCore.startSynchronousComputation) { try { - TickHandlerCore.startSynchronousComputation.wait(); + if (Thread.currentThread() != BuildCraftCore.instance.serverThread) { + TickHandlerCore.startSynchronousComputation.wait(); + } for (int x = 0; x < 16; ++x) { for (int y = 0; y < worldHeight; ++y) {