Index blocks on change

This commit is contained in:
Tanner Collin 2021-04-24 23:37:11 +00:00
parent 09b9002c58
commit ce9613c00c

View File

@ -7,6 +7,7 @@ from minecraft.networking.packets import clientbound, serverbound
from mosfet.protocol import packets from mosfet.protocol import packets
from mosfet import utils from mosfet import utils
from mosfet.info import blocks
class DataManager: class DataManager:
def __init__(self, directory): def __init__(self, directory):
@ -42,7 +43,7 @@ class ChunksManager:
def __init__(self, data_manager): def __init__(self, data_manager):
self.data = data_manager self.data = data_manager
self.chunks = {} self.chunks = {}
self.biomes = {} #self.biomes = {}
self.index = {} self.index = {}
self.loading = False self.loading = False
@ -74,7 +75,7 @@ class ChunksManager:
coords = (dx + l%16, dy + l//256, dz + l%256//16) coords = (dx + l%16, dy + l//256, dz + l%256//16)
self.index[item_id].append(coords) self.index[item_id].append(coords)
self.biomes[(chunk_packet.x, None, chunk_packet.z)] = chunk_packet.biomes # FIXME #self.biomes[(chunk_packet.x, None, chunk_packet.z)] = chunk_packet.biomes # FIXME
if self.loading: if self.loading:
print('.', end='', flush=True) print('.', end='', flush=True)
@ -116,6 +117,11 @@ class ChunksManager:
if not c: return None if not c: return None
c.set_block_at(x%16, y%16, z%16, block) c.set_block_at(x%16, y%16, z%16, block)
if block in blocks.INDEXED_IDS:
if block not in self.index:
self.index[block] = []
self.index[block].append((x, y, z))
def check_loaded(self, position, steps=1): def check_loaded(self, position, steps=1):
x, y, z = utils.pint(position) x, y, z = utils.pint(position)
player_chunk = (x//16, 1, z//16) player_chunk = (x//16, 1, z//16)