From 9d46abe80580e23bcceb673a7a7a21b955b43734 Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Wed, 4 Feb 2026 17:29:05 +0200 Subject: [PATCH] recator: Repo interface --- internal/controller/controller.go | 10 +++++----- internal/controller/generate_game.go | 2 +- internal/controller/generate_turn.go | 2 +- internal/game/cmd_group.go | 2 +- internal/game/cmd_planet.go | 2 +- internal/game/cmd_production.go | 2 +- internal/game/cmd_science.go | 4 ++-- internal/game/cmd_ship_type.go | 6 +++--- internal/game/cmd_war_peace.go | 2 +- internal/repo/game.go | 16 ++++++++-------- internal/util/map.go | 2 +- 11 files changed, 25 insertions(+), 25 deletions(-) diff --git a/internal/controller/controller.go b/internal/controller/controller.go index ce98853..3cd533c 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -16,10 +16,10 @@ type Repo interface { Release() error // SaveTurn stores just generated new turn - SaveTurn(uint, *game.Game) error + SaveNewTurn(uint, *game.Game) error // SaveState stores current game state updated between turns - SaveState(*game.Game) error + SaveLastState(*game.Game) error // LoadState retrieves game current state with required lock acquisition LoadState() (*game.Game, error) @@ -28,13 +28,13 @@ type Repo interface { LoadStateSafe() (*game.Game, error) // SaveBattle stores a new battle protocol and battle meta data for turn t - SaveBattle(t uint, b *report.BattleReport, m *game.BattleMeta) error + SaveBattle(uint, *report.BattleReport, *game.BattleMeta) error // SaveBombing stores all prodused bombings for turn t - SaveBombings(t uint, b []*game.Bombing) error + SaveBombings(uint, []*game.Bombing) error // SaveReport stores latest report for a race - SaveReport(t uint, rep *report.Report) error + SaveReport(uint, *report.Report) error } type Controller struct { diff --git a/internal/controller/generate_game.go b/internal/controller/generate_game.go index 837b1e3..3c75b63 100644 --- a/internal/controller/generate_game.go +++ b/internal/controller/generate_game.go @@ -25,7 +25,7 @@ func newGameOnMap(r Repo, races []string, m generator.Map) (uuid.UUID, error) { if err != nil { return uuid.Nil, err } - if err := r.SaveTurn(0, g); err != nil { + if err := r.SaveNewTurn(0, g); err != nil { return uuid.Nil, err } return g.ID, nil diff --git a/internal/controller/generate_turn.go b/internal/controller/generate_turn.go index 9d9e3f5..24b3124 100644 --- a/internal/controller/generate_turn.go +++ b/internal/controller/generate_turn.go @@ -108,7 +108,7 @@ func MakeTurn(c *Controller, r Repo) error { c.Cache.DeleteKilledShipGroups() // Store game state for the new turn and 'current' state as well - if err := r.SaveTurn(c.Cache.g.Turn, c.Cache.g); err != nil { + if err := r.SaveNewTurn(c.Cache.g.Turn, c.Cache.g); err != nil { return err } diff --git a/internal/game/cmd_group.go b/internal/game/cmd_group.go index 775dd62..4b0ecbd 100644 --- a/internal/game/cmd_group.go +++ b/internal/game/cmd_group.go @@ -18,5 +18,5 @@ func joinEqualGroups(c *controller.Controller, r controller.Repo, g *game.Game, if err := c.JoinEqualGroups(race); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/game/cmd_planet.go b/internal/game/cmd_planet.go index 3e43835..0009619 100644 --- a/internal/game/cmd_planet.go +++ b/internal/game/cmd_planet.go @@ -18,5 +18,5 @@ func renamePlanet(c *controller.Controller, r controller.Repo, g *game.Game, rac if err := c.RenamePlanet(race, number, name); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/game/cmd_production.go b/internal/game/cmd_production.go index 6b4d387..f64a18d 100644 --- a/internal/game/cmd_production.go +++ b/internal/game/cmd_production.go @@ -18,5 +18,5 @@ func planetProduction(c *controller.Controller, r controller.Repo, g *game.Game, if err := c.PlanetProduction(race, planetNumber, prodType, subject); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/game/cmd_science.go b/internal/game/cmd_science.go index 0dcbd70..3009766 100644 --- a/internal/game/cmd_science.go +++ b/internal/game/cmd_science.go @@ -18,7 +18,7 @@ func createScience(c *controller.Controller, r controller.Repo, g *game.Game, ra if err := c.CreateScience(race, typeName, drive, weapons, shields, cargo); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } func DeleteScience(configure func(*controller.Param), race, typeName string) (err error) { @@ -34,5 +34,5 @@ func deleteScience(c *controller.Controller, r controller.Repo, g *game.Game, ra if err := c.DeleteScience(race, typeName); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/game/cmd_ship_type.go b/internal/game/cmd_ship_type.go index 17b4448..3037578 100644 --- a/internal/game/cmd_ship_type.go +++ b/internal/game/cmd_ship_type.go @@ -18,7 +18,7 @@ func createShipType(c *controller.Controller, r controller.Repo, g *game.Game, r if err := c.CreateShipType(race, typeName, drive, ammo, weapons, shields, cargo); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } func MergeShipType(configure func(*controller.Param), race, source, target string) (err error) { @@ -34,7 +34,7 @@ func mergeShipType(c *controller.Controller, r controller.Repo, g *game.Game, ra if err := c.MergeShipType(race, source, target); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } func DeleteShipType(configure func(*controller.Param), race, typeName string) (err error) { @@ -50,5 +50,5 @@ func deleteShipType(c *controller.Controller, r controller.Repo, g *game.Game, r if err := c.DeleteShipType(race, typeName); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/game/cmd_war_peace.go b/internal/game/cmd_war_peace.go index 96a291b..5a3d3ae 100644 --- a/internal/game/cmd_war_peace.go +++ b/internal/game/cmd_war_peace.go @@ -23,5 +23,5 @@ func updateRelation(c *controller.Controller, r controller.Repo, g *game.Game, h if err := c.UpdateRelation(hostRace, opponentRace, rel); err != nil { return err } - return r.SaveState(g) + return r.SaveLastState(g) } diff --git a/internal/repo/game.go b/internal/repo/game.go index 3babd12..7357008 100644 --- a/internal/repo/game.go +++ b/internal/repo/game.go @@ -34,30 +34,30 @@ func saveReport(s Storage, t uint, v *report.Report) error { return nil } -func (r *repo) SaveTurn(t uint, g *game.Game) error { - return saveTurn(r.s, t, g) +func (r *repo) SaveNewTurn(t uint, g *game.Game) error { + return saveNewTurn(r.s, t, g) } -func saveTurn(s Storage, t uint, g *game.Game) error { +func saveNewTurn(s Storage, t uint, g *game.Game) error { path := fmt.Sprintf("%s/state.json", turnDir(t)) exist, err := s.Exists(path) if err != nil { return NewStorageError(err) } if exist { - return NewStateError(fmt.Sprintf("state for turn %d already saved", t)) + return NewStateError(fmt.Sprintf("turn %d already saved at %s", t, path)) } if err := s.Write(path, g); err != nil { return NewStorageError(err) } - return saveState(s, g) // FIXME: either save it here, or in tre repo controller + return saveLastState(s, g) } -func (r *repo) SaveState(g *game.Game) error { - return saveState(r.s, g) +func (r *repo) SaveLastState(g *game.Game) error { + return saveLastState(r.s, g) } -func saveState(s Storage, g *game.Game) error { +func saveLastState(s Storage, g *game.Game) error { if err := s.Write(statePath, g); err != nil { return NewStorageError(err) } diff --git a/internal/util/map.go b/internal/util/map.go index 2275d41..ad8333a 100644 --- a/internal/util/map.go +++ b/internal/util/map.go @@ -12,7 +12,7 @@ func NextTravelCoord(w, h uint32, x1, y1, x2, y2, delta float64) (float64, float if distance <= delta { return x2, y2, true } - // TODO: refactor - remove extra vars + // [ ] refactor - remove extra vars xa := 0. ya := 0. xb := deltaX