From 7008c91c6fb74f7106c4d9903849d3f1fc17b2f1 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Fri, 2 Jun 2023 00:00:09 +0200 Subject: Improved ships lib with ships db caching --- automation/automation.js | 2 +- automation/contracting.js | 12 ++++++------ automation/mining.js | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'automation') diff --git a/automation/automation.js b/automation/automation.js index c7fa6f7..3184c2f 100644 --- a/automation/automation.js +++ b/automation/automation.js @@ -21,6 +21,6 @@ export async function register(symbol, faction) { } dbConfig.registerAgent(json.data); exploration.init(); - // TODO ship + dbShips.setShip(json.data.ship); // TODO contract } diff --git a/automation/contracting.js b/automation/contracting.js index b5c7292..4eff9d5 100644 --- a/automation/contracting.js +++ b/automation/contracting.js @@ -5,7 +5,7 @@ import * as ships from '../lib/ships.js'; import * as systems from '../lib/systems.js'; export async function auto(ctx) { - let ship = await ships.ship({ship: ctx.ship}); + let ship = await ships.ship({symbol: ctx.ship}); // Fetch our contracts in the system the ship currently is in let cs = await contracts.contracts(); cs = cs.data.filter(c => c.terms.deliver[0].destinationSymbol.startsWith(ship.data.nav.systemSymbol)); @@ -20,7 +20,7 @@ export async function auto(ctx) { const asteroidFields = await systems.type({symbol: ship.data.nav.systemSymbol, type: 'ASTEROID_FIELD'}); const asteroidField = asteroidFields[0].symbol; while (true) { - ship = await ships.ship({ship: ctx.ship}); // TODO we should not need to fetch this + ship = await ships.ship({symbol: ctx.ship}); // TODO we should not need to fetch this // If we are in transit, we wait until we arrive const delay = new Date(ship.data.nav.route.arrival) - new Date(); if (delay > 0) await api.sleep(delay); @@ -31,16 +31,16 @@ export async function auto(ctx) { case asteroidField: let response = await mining.mineUntilFullOf({good: good, ship: ctx.ship}); //console.log(`${ctx.ship}'s cargo is full with ${response.units} of ${good}!`); - await ships.navigate({ship: ctx.ship, waypoint: deliveryPoint}); + await ships.navigate({symbol: ctx.ship, waypoint: deliveryPoint}); break; case deliveryPoint: await ships.dock({symbol: ctx.ship}); - await ships.refuel({ship: ctx.ship}); + await ships.refuel({symbol: ctx.ship}); console.log(`delivering ${goodCargo.units} of ${good}`); await contracts.deliver({contract: contract.id, ship: ctx.ship, good: good, units: goodCargo.units }); - await ships.navigate({ship: ctx.ship, waypoint: asteroidField}); + await ships.navigate({symbol: ctx.ship, waypoint: asteroidField}); await ships.dock({symbol: ctx.ship}); - await ships.refuel({ship: ctx.ship}); + await ships.refuel({symbol: ctx.ship}); await ships.orbit({symbol: ctx.ship}); break; default: diff --git a/automation/mining.js b/automation/mining.js index a719bff..113425b 100644 --- a/automation/mining.js +++ b/automation/mining.js @@ -6,7 +6,7 @@ import * as ships from '../lib/ships.js'; export async function mineUntilFullOf(ctx) { while(true) { let response = await mineUntilFull({ship: ctx.ship}); - if (response === null) response = await ships.ship({ship: ctx.ship}); // TODO we should not need to fetch this + if (response === null) response = await ships.ship({symbol: ctx.ship}); // TODO we should not need to fetch this let good = response.data.cargo.inventory.filter(i => i.symbol === ctx.good)[0]; const inventory = response.data.cargo.inventory.filter(i => i.symbol !== ctx.good); const antimatter = response.data.cargo.inventory.filter(i => i.symbol === 'ANTIMATTER')[0]; @@ -17,7 +17,7 @@ export async function mineUntilFullOf(ctx) { for (let i=0; i= response.data.cargo.capacity * 0.9) return response; -- cgit v1.2.3