[golang] implement systems and waypoints lookups
This commit is contained in:
parent
d97985a694
commit
66466e161f
10 changed files with 205 additions and 0 deletions
|
@ -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":
|
||||
|
|
|
@ -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
24
golang/pkg/agent/visit.go
Normal 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")
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue