1
0
Fork 0

[golang] implement systems and waypoints lookups

This commit is contained in:
Julien Dessaux 2025-02-15 01:22:36 +01:00
parent d97985a694
commit 66466e161f
Signed by: adyxax
GPG key ID: F92E51B86E07177E
10 changed files with 205 additions and 0 deletions

View file

@ -26,6 +26,7 @@ func (a *agent) autoContracting(ship *model.Ship) {
}
}
}
a.sendShipError(fmt.Errorf("failed to run contracts: negotiating new contracts is not implemented yet"), ship)
// TODO
//for {
// negotiate
@ -37,6 +38,7 @@ func (a *agent) runContract(contract *model.Contract, ship *model.Ship) error {
if err := a.client.Accept(contract, a.db); err != nil {
return fmt.Errorf("failed to run contract: %w", err)
}
//slog.Info("running contract", "contract", contract, "ship", ship.Symbol)
switch contract.Type {
// TODO
//case "PROCUREMENT":

View file

@ -23,6 +23,7 @@ type State int
const (
start_running_contracts_with_the_command_ship = iota
visit_all_shipyards
)
func Run(
@ -54,6 +55,11 @@ func Run(
agent.wg.Add(1)
go agent.autoContracting(&agent.ships[0])
state++
case visit_all_shipyards:
if err := agent.visitAllShipyards(&agent.ships[1]); err != nil {
agent.sendShipError(fmt.Errorf("agent runner returned an error on state %d: %w", state, err), &agent.ships[1])
}
state++
return
default:
agent.sendShipError(fmt.Errorf("agent runner reach an unknown state: %d", state), nil)

24
golang/pkg/agent/visit.go Normal file
View file

@ -0,0 +1,24 @@
package agent
import (
"fmt"
"log/slog"
"git.adyxax.org/adyxax/spacetraders/golang/pkg/model"
)
func (a *agent) visitAllShipyards(ship *model.Ship) error {
system, err := a.client.GetSystem(ship.Nav.SystemSymbol, a.db)
if err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
}
waypoints, err := a.client.ListWaypointsInSystem(system, a.db)
if err != nil {
return fmt.Errorf("failed to visit all shipyards: %w", err)
}
//slog.Info("get system", "system", system.Waypoints, "err", err)
//waypoint, err := a.client.GetWaypoint("X1-RR14-J88", a.db)
slog.Info("get waypoint", "waypoint", waypoints[0])
return fmt.Errorf("failed to visit all shipyards: not implemented yet")
}