refactor: remove group & fleet

This commit is contained in:
Ilia Denisov
2026-02-11 07:52:22 +02:00
parent a477f5ce0b
commit 1515bc8599
+10 -14
View File
@@ -68,22 +68,18 @@ func (c *Cache) ShipGroupDestroyItem(i int) {
sg.Number -= 1
}
func (c *Cache) DeleteShipGroup(i int) {
c.validateShipGroupIndex(i)
c.unsafeDeleteShipGroup(i)
}
func (c *Cache) DeleteKilledShipGroups() {
keepFleet := make(map[uuid.UUID]bool, len(c.g.Fleets))
for i := len(c.g.ShipGroups) - 1; i >= 0; i-- {
if c.g.ShipGroups[i].FleetID != nil {
id := *c.g.ShipGroups[i].FleetID
keepFleet[id] = keepFleet[id] || c.g.ShipGroups[i].Number > 0
for sgi := len(c.g.ShipGroups) - 1; sgi >= 0; sgi-- {
if c.g.ShipGroups[sgi].FleetID != nil {
id := *c.g.ShipGroups[sgi].FleetID
keepFleet[id] = keepFleet[id] || c.g.ShipGroups[sgi].Number > 0
}
if c.g.ShipGroups[i].Number == 0 {
c.unsafeDeleteShipGroup(i)
if c.g.ShipGroups[sgi].Number == 0 {
c.g.ShipGroups = append(c.g.ShipGroups[:sgi], c.g.ShipGroups[sgi+1:]...)
}
}
c.invalidateShipGroupCache()
for id, keep := range keepFleet {
if keep {
continue
@@ -122,7 +118,7 @@ func (c *Cache) shipGroupMerge(ri int) {
for i := 0; i < len(raceGroups)-1; i++ {
for j := len(raceGroups) - 1; j > i; j-- {
if raceGroups[i].Equal(raceGroups[j]) {
raceGroups[i].ID = raceGroups[j].ID
raceGroups[i].ID = raceGroups[j].ID // resulting group will have latest ID
raceGroups[i].Number += raceGroups[j].Number
raceGroups = append(raceGroups[:j], raceGroups[j+1:]...)
}
@@ -141,8 +137,8 @@ func (c *Cache) shipGroupMerge(ri int) {
slices.Sort(toDelete)
slices.Reverse(toDelete)
for _, idx := range toDelete {
c.unsafeDeleteShipGroup(idx)
for _, sgi := range toDelete {
c.unsafeDeleteShipGroup(sgi)
}
for i := range raceGroups {