wip: refactor controller
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"iter"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/iliadenisov/galaxy/internal/model/game"
|
||||
)
|
||||
|
||||
func (c *Cache) Race(i int) game.Race {
|
||||
c.validateRaceIndex(i)
|
||||
return c.g.Race[i]
|
||||
}
|
||||
|
||||
func (c *Cache) ListShipGroups(ri int) iter.Seq[*game.ShipGroup] {
|
||||
return c.listShipGroups(ri)
|
||||
}
|
||||
|
||||
func (c *Cache) ListFleets(ri int) iter.Seq[*game.Fleet] {
|
||||
return c.listFleets(ri)
|
||||
}
|
||||
|
||||
func (c *Cache) MustFleetID(ri int, name string) uuid.UUID {
|
||||
for f := range c.listFleets(ri) {
|
||||
if f.Name == name {
|
||||
return f.ID
|
||||
}
|
||||
}
|
||||
panic("fleet not found")
|
||||
}
|
||||
|
||||
func (c *Cache) MustShipGroup(ri int, index uint) *game.ShipGroup {
|
||||
for sg := range c.listShipGroups(ri) {
|
||||
if sg.Index == index {
|
||||
return sg
|
||||
}
|
||||
}
|
||||
panic(fmt.Sprintf("race i=%d have no group i=%d", ri, index))
|
||||
}
|
||||
|
||||
func (c *Cache) MustShipClass(ri int, name string) *game.ShipType {
|
||||
st, _, ok := c.ShipClass(ri, name)
|
||||
if !ok {
|
||||
panic("ship class not foind")
|
||||
}
|
||||
return st
|
||||
}
|
||||
|
||||
func (c *Cache) PutPopulation(pn uint, v float64) {
|
||||
c.putPopulation(pn, v)
|
||||
}
|
||||
|
||||
func (c *Cache) PutColonists(pn uint, v float64) {
|
||||
c.putColonists(pn, v)
|
||||
}
|
||||
|
||||
func (c *Cache) PutMaterial(pn uint, v float64) {
|
||||
c.putMaterial(pn, v)
|
||||
}
|
||||
|
||||
func (c *Cache) RacetTechLevel(ri int, t game.Tech, v float64) {
|
||||
c.racetTechLevel(ri, t, v)
|
||||
}
|
||||
Reference in New Issue
Block a user