optimizations

This commit is contained in:
Kyler Olsen 2024-04-22 13:35:14 -06:00
parent c1c7fd1b43
commit 5ad58e905d
1 changed files with 11 additions and 2 deletions

View File

@ -6,6 +6,7 @@ os.environ["SSL_CERT_FILE"] = certifi.where()
from typing import List
import subprocess
import time
from twisted.internet import reactor
from quarry.net.server import ServerFactory, ServerProtocol
@ -187,14 +188,20 @@ class Player:
def load_chunk(self, x: int, z: int):
print(f"enqueuing loading chunk {x}, {z}")
self._chunks.add((x,z))
self._load_queue.append((x,z))
if (x,z) not in self._load_queue:
self._load_queue.append((x,z))
if (x,z) in self._unload_queue:
self._unload_queue.remove((x,z))
# self._conn.send_chunk(x,z)
def unload_chunk(self, x: int, z: int):
print(f"enqueuing unloading chunk {x}, {z}")
try: self._chunks.remove((x,z))
except KeyError: pass
self._unload_queue.append((x,z))
if (x,z) not in self._unload_queue:
self._unload_queue.append((x,z))
if (x,z) in self._load_queue:
self._load_queue.remove((x,z))
# self._conn.send_unload_chunk(x,z)
@ -300,12 +307,14 @@ class YTDServerProtocol(ServerProtocol):
self.send_packet("join_game", *join_game)
def manage_queue(self):
t = time.time()
if self.player._load_queue:
x,z = self.player._load_queue.pop(0)
while (x,z) in self.player._load_queue:
self.player._load_queue.remove((x,z))
print(f"dequeuing loading chunk {x}, {z}")
self.send_chunk(x,z)
print(f"generating {x}, {z} took {int(time.time()-t)}s")
elif self.player._unload_queue:
x,z = self.player._unload_queue.pop(0)
while (x,z) in self.player._unload_queue: