diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index f2f97049..5229358c 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -251,7 +251,7 @@ public class CompassService implements ThreadFactory if ( cr == null ) { - cr = new CompassReader( w, rootFolder ); + cr = new CompassReader( w.provider.dimensionId, rootFolder ); worldSet.put( w, cr ); } diff --git a/src/main/java/appeng/services/helpers/CompassReader.java b/src/main/java/appeng/services/helpers/CompassReader.java index 32413540..513f95cd 100644 --- a/src/main/java/appeng/services/helpers/CompassReader.java +++ b/src/main/java/appeng/services/helpers/CompassReader.java @@ -3,24 +3,26 @@ package appeng.services.helpers; import java.io.File; import java.util.HashMap; -import net.minecraft.world.World; public class CompassReader { private final HashMap regions = new HashMap(); - private final int id; + private final int dimensionId; private final File rootFolder; public void close() { - for (CompassRegion r : regions.values()) + for (CompassRegion r : this.regions.values()) + { r.close(); + } - regions.clear(); + this.regions.clear(); } - public CompassReader(World w, File rootFolder) { - id = w.provider.dimensionId; + public CompassReader(int dimensionId, File rootFolder) + { + this.dimensionId = dimensionId; this.rootFolder = rootFolder; } @@ -42,11 +44,11 @@ public class CompassReader pos = pos << 32; pos = pos | (cz >> 10); - CompassRegion cr = regions.get( pos ); + CompassRegion cr = this.regions.get( pos ); if ( cr == null ) { - cr = new CompassRegion( cx, cz, id, rootFolder ); - regions.put( pos, cr ); + cr = new CompassRegion( cx, cz, this.dimensionId, this.rootFolder ); + this.regions.put( pos, cr ); } return cr;