create a method getRegionFile, which automatically loads a region file if present. fixes deleteChunk not deleting from unloaded regions
This commit is contained in:
parent
d74bf07343
commit
6e7c6f0ab3
@ -1115,11 +1115,7 @@ class MCInfdevOldLevel(MCLevel):
|
|||||||
def getRegionForChunk(self, cx, cz):
|
def getRegionForChunk(self, cx, cz):
|
||||||
rx = cx >> 5
|
rx = cx >> 5
|
||||||
rz = cz >> 5
|
rz = cz >> 5
|
||||||
rf = self.regionFiles.get((rx, rz))
|
return self.getRegionFile(rx, rz)
|
||||||
if rf: return rf
|
|
||||||
rf = MCRegionFile(self.regionFilename(rx, rz), (rx, rz))
|
|
||||||
self.regionFiles[rx, rz] = rf;
|
|
||||||
return rf
|
|
||||||
|
|
||||||
def preloadChunkPositions(self):
|
def preloadChunkPositions(self):
|
||||||
if self.version == 19132:
|
if self.version == 19132:
|
||||||
@ -1148,6 +1144,13 @@ class MCInfdevOldLevel(MCLevel):
|
|||||||
|
|
||||||
return MCRegionFile(filepath, (rx, rz))
|
return MCRegionFile(filepath, (rx, rz))
|
||||||
|
|
||||||
|
def getRegionFile(self, rx, rz):
|
||||||
|
regionFile = self.regionFiles.get((rx, rz))
|
||||||
|
if regionFile: return regionFile
|
||||||
|
regionFile = MCRegionFile(self.regionFilename(rx, rz), (rx, rz))
|
||||||
|
self.regionFiles[rx, rz] = regionFile;
|
||||||
|
return regionFile
|
||||||
|
|
||||||
def preloadRegions(self):
|
def preloadRegions(self):
|
||||||
info(u"Scanning for regions...")
|
info(u"Scanning for regions...")
|
||||||
self._allChunks = set()
|
self._allChunks = set()
|
||||||
@ -2292,7 +2295,7 @@ class MCInfdevOldLevel(MCLevel):
|
|||||||
|
|
||||||
if self.version:
|
if self.version:
|
||||||
r = cx >> 5, cz >> 5
|
r = cx >> 5, cz >> 5
|
||||||
rf = self.regionFiles.get(r)
|
rf = self.getRegionFile(*r)
|
||||||
if rf:
|
if rf:
|
||||||
rf.setOffset(cx & 0x1f , cz & 0x1f, 0)
|
rf.setOffset(cx & 0x1f , cz & 0x1f, 0)
|
||||||
if (rf.offsets == 0).all():
|
if (rf.offsets == 0).all():
|
||||||
|
Reference in New Issue
Block a user