From 24570d0fc0ba45abb3dbd32f1e98d7bf73eb75e0 Mon Sep 17 00:00:00 2001 From: MayaTheShy Date: Sun, 22 Mar 2026 11:45:10 -0400 Subject: [PATCH] feat: integrate WorldBlockCache for efficient world block management and update logging --- server/server.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/server/server.js b/server/server.js index c96af11..d5aa79e 100644 --- a/server/server.js +++ b/server/server.js @@ -5,6 +5,7 @@ import { createServer } from 'http'; import * as db from './database.js'; import { Turtle } from './Turtle.js'; import { TaskDispatcher } from './TaskDispatcher.js'; +import { WorldBlockCache } from './WorldBlockCache.js'; const app = express(); const PORT = 3001; @@ -49,14 +50,14 @@ db.initializeDatabase(); // Load persisted data from database console.log('📂 Loading persisted data from database...'); const savedHomes = db.getAllTurtleHomes(); -const savedBlocks = db.getWorldBlocks(); +const blockCount = db.getWorldBlockCount(); console.log(` Loaded ${savedHomes.length} turtle homes`); -console.log(` Loaded ${savedBlocks.length} world blocks`); +console.log(` ${blockCount} world blocks in database (demand-loaded)`); // Store connected web clients and turtle data const webClients = new Set(); const turtles = new Map(); // turtleID -> Turtle instance -const worldBlocks = new Map(); // "x,y,z" -> {name, metadata, discoveredBy, timestamp} +const worldBlocks = new WorldBlockCache(db, parseInt(process.env.BLOCK_CACHE_SIZE || '50000', 10)); const turtleHomes = new Map(); // turtleID -> {x, y, z} home position const turtleConfig = new Map(); // turtleID -> {maxDistance, facing, etc} @@ -65,17 +66,6 @@ for (const home of savedHomes) { turtleHomes.set(home.turtle_id, { x: home.x, y: home.y, z: home.z }); } -// Load saved blocks into memory -for (const block of savedBlocks) { - const key = `${block.x},${block.y},${block.z}`; - worldBlocks.set(key, { - name: block.block_name, - metadata: block.metadata, - discoveredBy: block.discovered_by, - timestamp: block.discovered_at - }); -} - // Timeout for considering turtles offline (30 seconds) const TURTLE_TIMEOUT = 30000;