Display when the bot is loading chunks

master
Tanner Collin 3 years ago
parent cf8677ee65
commit 1d8d473e26
  1. 14
      bot.py
  2. 3
      protocol/managers.py

@ -55,10 +55,18 @@ def tick(global_state):
target = None
# make sure current chunks are loaded for physics
if not g.chunks.check_loaded(p, 9):
if not g.chunks.check_loaded(p, 288):
if not g.chunks.loading:
print('Loading chunks', end='', flush=True)
g.chunks.loading = True
packet = serverbound.play.PositionAndLookPacket(x=p.x, feet_y=p.y, z=p.z, pitch=0, yaw=0, on_ground=True)
g.connection.write_packet(packet, force=True)
return
else:
if g.chunks.loading:
print()
print('Chunks loaded.')
g.chunks.loading = False
g.chunks.unload_chunks(p)
@ -246,10 +254,6 @@ def bot(global_state):
time.sleep(utils.TICK)
print('Player loaded.')
while not g.chunks.check_loaded(g.pos, 288):
time.sleep(utils.TICK)
print('Chunks loaded.')
init(g)
g.game.close_window()
print('Initialized.')

@ -44,6 +44,7 @@ class ChunksManager:
self.chunks = {}
self.biomes = {}
self.index = {}
self.loading = False
def handle_block(self, block_packet):
self.set_block_at(block_packet.location.x, block_packet.location.y, block_packet.location.z, block_packet.block_state_id)
@ -74,6 +75,8 @@ class ChunksManager:
self.index[item_id].append(coords)
self.biomes[(chunk_packet.x, None, chunk_packet.z)] = chunk_packet.biomes # FIXME
if self.loading:
print('.', end='', flush=True)
def register(self, connection):
connection.register_packet_listener(self.handle_block, clientbound.play.BlockChangePacket)

Loading…
Cancel
Save