create a ChunkBase class with attrs common to FakeChunk, InfdevChunk, and PocketChunk
This commit is contained in:
parent
de8dd71ee2
commit
26aacd8265
@ -585,11 +585,11 @@ def ZeroChunk(height=512):
|
|||||||
if z is None:
|
if z is None:
|
||||||
z = _zeros[height] = _ZeroChunk(height)
|
z = _zeros[height] = _ZeroChunk(height)
|
||||||
return z
|
return z
|
||||||
|
|
||||||
class _ZeroChunk(object):
|
from level import ChunkBase
|
||||||
|
|
||||||
|
class _ZeroChunk(ChunkBase):
|
||||||
" a placebo for neighboring-chunk routines "
|
" a placebo for neighboring-chunk routines "
|
||||||
def compress(self): pass
|
|
||||||
def load(self): pass
|
|
||||||
def __init__(self, height=512):
|
def __init__(self, height=512):
|
||||||
zeroChunk = zeros((16, 16, height), uint8)
|
zeroChunk = zeros((16, 16, height), uint8)
|
||||||
whiteLight = zeroChunk + 15;
|
whiteLight = zeroChunk + 15;
|
||||||
@ -598,7 +598,8 @@ class _ZeroChunk(object):
|
|||||||
self.SkyLight = whiteLight
|
self.SkyLight = whiteLight
|
||||||
self.Data = zeroChunk
|
self.Data = zeroChunk
|
||||||
|
|
||||||
class InfdevChunk(EntityLevel):
|
|
||||||
|
class InfdevChunk(ChunkBase):
|
||||||
""" This is a 16x16xH chunk in an (infinite) world.
|
""" This is a 16x16xH chunk in an (infinite) world.
|
||||||
The properties Blocks, Data, SkyLight, BlockLight, and Heightmap
|
The properties Blocks, Data, SkyLight, BlockLight, and Heightmap
|
||||||
are ndarrays containing the respective blocks in the chunk file.
|
are ndarrays containing the respective blocks in the chunk file.
|
||||||
|
1
java.py
1
java.py
@ -5,6 +5,7 @@ Created on Jul 22, 2011
|
|||||||
'''
|
'''
|
||||||
__all__ = ["MCJavaLevel"]
|
__all__ = ["MCJavaLevel"]
|
||||||
from mclevelbase import *
|
from mclevelbase import *
|
||||||
|
from level import MCLevel
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
5
level.py
5
level.py
@ -772,13 +772,14 @@ class EntityLevel(MCLevel):
|
|||||||
|
|
||||||
return self._fakeEntities[cx, cz]
|
return self._fakeEntities[cx, cz]
|
||||||
|
|
||||||
class FakeChunk(EntityLevel):
|
class ChunkBase(EntityLevel):
|
||||||
def load(self):pass
|
def load(self):pass
|
||||||
def compress(self):pass
|
def compress(self):pass
|
||||||
def __init__(self):pass
|
|
||||||
def chunkChanged(self):pass
|
def chunkChanged(self):pass
|
||||||
@property
|
@property
|
||||||
def materials(self): return self.world.materials
|
def materials(self): return self.world.materials
|
||||||
|
|
||||||
|
class FakeChunk(ChunkBase):
|
||||||
@property
|
@property
|
||||||
def HeightMap(self):
|
def HeightMap(self):
|
||||||
if hasattr(self, "_heightMap"):
|
if hasattr(self, "_heightMap"):
|
||||||
|
@ -297,7 +297,7 @@ class PocketChunksFile(object):
|
|||||||
coords = ((i % 32, i // 32) for i in indexes)
|
coords = ((i % 32, i // 32) for i in indexes)
|
||||||
return coords
|
return coords
|
||||||
|
|
||||||
from infiniteworld import InfdevChunk, ChunkedLevelMixin
|
from infiniteworld import ChunkBase, ChunkedLevelMixin
|
||||||
from level import MCLevel
|
from level import MCLevel
|
||||||
|
|
||||||
class PocketWorld(ChunkedLevelMixin, MCLevel):
|
class PocketWorld(ChunkedLevelMixin, MCLevel):
|
||||||
@ -350,7 +350,7 @@ class PocketWorld(ChunkedLevelMixin, MCLevel):
|
|||||||
if cx>31 or cz>31 or cx < 0 or cz < 0: return False
|
if cx>31 or cz>31 or cx < 0 or cz < 0: return False
|
||||||
return self.chunkFile.getOffset(cx,cz) != 0
|
return self.chunkFile.getOffset(cx,cz) != 0
|
||||||
|
|
||||||
class PocketChunk(InfdevChunk):
|
class PocketChunk(ChunkBase):
|
||||||
Blocks = Data = SkyLight = BlockLight = None
|
Blocks = Data = SkyLight = BlockLight = None
|
||||||
|
|
||||||
HeightMap = FakeChunk.HeightMap
|
HeightMap = FakeChunk.HeightMap
|
||||||
|
Reference in New Issue
Block a user