From 5899df7a309ba7ce37e783b8212f3b7c70f2ee22 Mon Sep 17 00:00:00 2001 From: Vitor Hideyoshi Date: Sat, 5 Jul 2025 22:43:58 -0300 Subject: [PATCH] Adds Routine for Cleaning SpawnHandlers --- package.json | 4 ++-- src/main.ts | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index be92a2f..f703a39 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "", "scripts": { "build": "node esbuild.config.mjs", - "push:main": "npm run build && screeps-api --server main upload dist/*.js dist/**/*.js", - "push:sim": "npm run build && screeps-api --server main upload --branch sim dist/*.js dist/**/*.js", + "push:main": "npm run build && screeps-api --server main upload dist/*.js", + "push:sim": "npm run build && screeps-api --server main upload --branch sim dist/*.js", "format": "prettier --config .prettierrc 'src/**/*.ts' --write && eslint --fix src/" }, "repository": { diff --git a/src/main.ts b/src/main.ts index c95849d..e47707c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -48,13 +48,23 @@ export const loop = () => { console.log(`Current game tick is ${Game.time}`); // Check if spawn still exists + const activeSpawns = Object.keys(Game.spawns); - for (const spawn of Object.values(Game.spawns)) { + for (const spawnName in Object.keys(Memory.spawnHandlers)) { + if (spawnName in Game.spawns) { + console.log(`Spawn ${spawnName} exists, continuing to run its handler.`); + continue; + } + console.log(`Spawn ${spawnName} does not exist, deleting its handler.`); + delete Memory.spawnHandlers[spawnName]; + } + + for (const spawnName of activeSpawns) { // Create a handler for each spawn - if (spawn.name in Memory.spawnHandlers) { - Memory.spawnHandlers[spawn.name] = new SpawnHandler(spawn); + if (spawnName in Memory.spawnHandlers) { + Memory.spawnHandlers[spawnName] = new SpawnHandler(Game.spawns[spawnName]); } // Run the handler - Memory.spawnHandlers[spawn.name].run(); + Memory.spawnHandlers[spawnName].run(); } };