diff --git a/src/main/scala/codechicken/multipart/MultipartHelper.scala b/src/main/scala/codechicken/multipart/MultipartHelper.scala index 3d2d0e7..6b85dc1 100644 --- a/src/main/scala/codechicken/multipart/MultipartHelper.scala +++ b/src/main/scala/codechicken/multipart/MultipartHelper.scala @@ -41,6 +41,7 @@ object MultipartHelper { if (!tag.getString("id").equals("savedMultipart")) return null + MultipartSaveLoad.loadingWorld = world return TileMultipart.createFromNBT(tag) } diff --git a/src/main/scala/codechicken/multipart/handler/MultipartEventHandler.scala b/src/main/scala/codechicken/multipart/handler/MultipartEventHandler.scala index 42a61f2..67e16a8 100644 --- a/src/main/scala/codechicken/multipart/handler/MultipartEventHandler.scala +++ b/src/main/scala/codechicken/multipart/handler/MultipartEventHandler.scala @@ -30,8 +30,11 @@ object MultipartEventHandler { @SubscribeEvent def worldUnLoad(event: WorldEvent.Unload) { MultipartSPH.onWorldUnload(event.world) - if (event.world.isRemote) + if (event.world.isRemote) { TileCache.clear() + } else { + MultipartSaveLoad.loadingWorld = null + } } @SubscribeEvent diff --git a/src/main/scala/codechicken/multipart/handler/MultipartSaveLoad.scala b/src/main/scala/codechicken/multipart/handler/MultipartSaveLoad.scala index 71eee74..5fa299f 100644 --- a/src/main/scala/codechicken/multipart/handler/MultipartSaveLoad.scala +++ b/src/main/scala/codechicken/multipart/handler/MultipartSaveLoad.scala @@ -7,13 +7,16 @@ import net.minecraft.world.chunk.Chunk import net.minecraft.world.ChunkPosition import codechicken.multipart.{MultipartHelper, TileMultipart} import codechicken.lib.asm.ObfMapping +import net.minecraft.world.World import scala.collection.mutable import codechicken.multipart.MultipartHelper.IPartTileConverter import scala.collection.JavaConversions._ -/** Hack due to lack of TileEntityLoadEvent in forge */ +/** Hack due to lack of TileEntityLoadEvent in forge + */ object MultipartSaveLoad { val converters = mutable.MutableList[IPartTileConverter[_]]() + var loadingWorld: World = _ class TileNBTContainer extends TileEntity { var tag: NBTTagCompound = _ @@ -56,6 +59,7 @@ object MultipartSaveLoad { } def loadTiles(chunk: Chunk) { + loadingWorld = chunk.worldObj val iterator = chunk.chunkTileEntityMap .asInstanceOf[Map[ChunkPosition, TileEntity]] .entrySet