diff --git a/db/converter.go b/db/converter.go index 4d07035c..ab541326 100644 --- a/db/converter.go +++ b/db/converter.go @@ -1,10 +1,5 @@ -// to run locally: -// install this version (new versions don't support mapExtend) -// TODO: update goverter to latest version. has breaking changes to syntax -// go install github.com/jmattheis/goverter/cmd/goverter@v0.12.0 -// goverter --packageName db --output ./db/generated.go --packagePath github.com/sirgwain/craig-stars/db --ignoreUnexportedFields ./db -// -//go:generate go run github.com/jmattheis/goverter/cmd/goverter --packageName db --output ./db/generated.go --packagePath github.com/sirgwain/craig-stars/db --ignoreUnexportedFields ./db +//go:generate go run github.com/jmattheis/goverter/cmd/goverter@v1.3.0 gen ./ + package db import ( @@ -14,7 +9,13 @@ import ( "github.com/sirgwain/craig-stars/cs" ) +// will be instanciated in ./converter.init.go +var c Converter + // goverter:converter +// goverter:output:package github.com/sirgwain/craig-stars/db +// goverter:output:file ./generated.go +// goverter:ignoreUnexported // goverter:extend TimeToTime // goverter:extend NullTimeToTime // goverter:extend TimeToNullTime @@ -88,30 +89,23 @@ import ( // goverter:extend MysteryTraderSpecToGameMysteryTraderSpec // goverter:extend GameMysteryTraderSpecToMysteryTraderSpec type Converter interface { - // goverter:mapExtend DBObject ExtendUserDBObject + // goverter:map . DBObject ConvertUser(source User) cs.User - // goverter:mapExtend DBObject ExtendUserDBObject + ConvertUsers(source []User) []cs.User - // goverter:map DBObject.ID ID - // goverter:map DBObject.CreatedAt CreatedAt - // goverter:map DBObject.UpdatedAt UpdatedAt + // goverter:autoMap DBObject ConvertGameUser(source *cs.User) *User - // goverter:mapExtend DBObject ExtendRaceDBObject - // goverter:mapExtend ResearchCost ExtendResearchCost - // goverter:mapExtend HabLow ExtendHabLow - // goverter:mapExtend HabHigh ExtendHabHigh + // goverter:map . DBObject + // goverter:map . ResearchCost | ExtendResearchCost + // goverter:map . HabLow | ExtendHabLow + // goverter:map . HabHigh | ExtendHabHigh ConvertRace(source Race) cs.Race - // goverter:mapExtend DBObject ExtendRaceDBObject - // goverter:mapExtend ResearchCost ExtendResearchCost - // goverter:mapExtend HabLow ExtendHabLow - // goverter:mapExtend HabHigh ExtendHabHigh + ConvertRaces(source []Race) []cs.Race - // goverter:map DBObject.ID ID - // goverter:map DBObject.CreatedAt CreatedAt - // goverter:map DBObject.UpdatedAt UpdatedAt + // goverter:autoMap DBObject // goverter:map HabHigh.Grav HabHighGrav // goverter:map HabHigh.Temp HabHighTemp // goverter:map HabHigh.Rad HabHighRad @@ -126,20 +120,15 @@ type Converter interface { // goverter:map ResearchCost.Biotechnology ResearchCostBiotechnology ConvertGameRace(source *cs.Race) *Race - // goverter:mapExtend DBObject ExtendGameDBObject - // goverter:mapExtend VictoryConditions ExtendVictoryConditions - // goverter:mapExtend Area ExtendArea - // goverter:mapExtend Rules ExtendDefaultRules + // goverter:map . DBObject + // goverter:map . VictoryConditions | ExtendVictoryConditions + // goverter:map . Area | ExtendArea + // goverter:map . Rules | ExtendDefaultRules ConvertGame(source Game) cs.Game - // goverter:mapExtend DBObject ExtendGameDBObject - // goverter:mapExtend VictoryConditions ExtendVictoryConditions - // goverter:mapExtend Area ExtendArea ConvertGames(source []Game) []cs.Game - // goverter:map DBObject.ID ID - // goverter:map DBObject.CreatedAt CreatedAt - // goverter:map DBObject.UpdatedAt UpdatedAt + // goverter:autoMap DBObject // goverter:map VictoryConditions.NumCriteriaRequired VictoryConditionsNumCriteriaRequired // goverter:map VictoryConditions.YearsPassed VictoryConditionsYearsPassed // goverter:map VictoryConditions.OwnPlanets VictoryConditionsOwnPlanets @@ -155,10 +144,7 @@ type Converter interface { // goverter:map Area.Y AreaY ConvertGameGame(source *cs.Game) *Game - // goverter:map GameDBObject.ID ID - // goverter:map GameDBObject.GameID GameID - // goverter:map GameDBObject.CreatedAt CreatedAt - // goverter:map GameDBObject.UpdatedAt UpdatedAt + // goverter:autoMap GameDBObject // goverter:map TechLevels.Energy TechLevelsEnergy // goverter:map TechLevels.Weapons TechLevelsWeapons // goverter:map TechLevels.Propulsion TechLevelsPropulsion @@ -171,9 +157,7 @@ type Converter interface { // goverter:map TechLevelsSpent.Construction TechLevelsSpentConstruction // goverter:map TechLevelsSpent.Electronics TechLevelsSpentElectronics // goverter:map TechLevelsSpent.Biotechnology TechLevelsSpentBiotechnology - // goverter:map PlayerOrders.Researching Researching - // goverter:map PlayerOrders.NextResearchField NextResearchField - // goverter:map PlayerOrders.ResearchAmount ResearchAmount + // goverter:autoMap PlayerOrders // goverter:map PlayerIntels.BattleRecords BattleRecords // goverter:map PlayerIntels.PlayerIntels PlayerIntels // goverter:map PlayerIntels.ScoreIntels ScoreIntels @@ -186,50 +170,25 @@ type Converter interface { // goverter:map PlayerIntels.WormholeIntels WormholeIntels // goverter:map PlayerIntels.MysteryTraderIntels MysteryTraderIntels // goverter:map PlayerIntels.SalvageIntels SalvageIntels - // goverter:map PlayerPlans.BattlePlans BattlePlans - // goverter:map PlayerPlans.ProductionPlans ProductionPlans - // goverter:map PlayerPlans.TransportPlans TransportPlans + // goverter:autoMap PlayerPlans ConvertGamePlayer(source *cs.Player) *Player - // goverter:mapExtend GameDBObject ExtendPlayerGameDBObject - // goverter:mapExtend TechLevels ExtendTechLevels - // goverter:mapExtend TechLevelsSpent ExtendTechLevelsSpent - // goverter:mapExtend PlayerOrders ExtendPlayerPlayerOrders - // goverter:mapExtend PlayerIntels ExtendPlayerPlayerIntels - // goverter:mapExtend PlayerPlans ExtendPlayerPlayerPlans + // goverter:map . GameDBObject + // goverter:map . TechLevels | ExtendTechLevels + // goverter:map . TechLevelsSpent | ExtendTechLevels + // goverter:map . PlayerOrders + // goverter:map . PlayerIntels + // goverter:map . PlayerPlans // goverter:ignore Designs ConvertPlayer(source Player) cs.Player - // goverter:mapExtend GameDBObject ExtendPlayerGameDBObject - // goverter:mapExtend TechLevels ExtendTechLevels - // goverter:mapExtend TechLevelsSpent ExtendTechLevelsSpent - // goverter:mapExtend PlayerOrders ExtendPlayerPlayerOrders - // goverter:mapExtend PlayerIntels ExtendPlayerPlayerIntels - // goverter:mapExtend PlayerPlans ExtendPlayerPlayerPlans + ConvertPlayers(source []Player) []cs.Player - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.PlayerNum PlayerNum - // goverter:map MapObject.Tags Tags - // goverter:map PlanetOrders.ContributesOnlyLeftoverToResearch ContributesOnlyLeftoverToResearch - // goverter:map PlanetOrders.ProductionQueue ProductionQueue - // goverter:map PlanetOrders.RouteTargetType RouteTargetType - // goverter:map PlanetOrders.RouteTargetNum RouteTargetNum - // goverter:map PlanetOrders.RouteTargetPlayerNum RouteTargetPlayerNum - // goverter:map PlanetOrders.PacketTargetNum PacketTargetNum - // goverter:map PlanetOrders.PacketSpeed PacketSpeed - // goverter:map Hab.Grav Grav - // goverter:map Hab.Temp Temp - // goverter:map Hab.Rad Rad + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject + // goverter:autoMap PlanetOrders + // goverter:autoMap Hab // goverter:map BaseHab.Grav BaseGrav // goverter:map BaseHab.Temp BaseTemp // goverter:map BaseHab.Rad BaseRad @@ -242,163 +201,97 @@ type Converter interface { // goverter:map MineYears.Ironium MineYearsIronium // goverter:map MineYears.Boranium MineYearsBoranium // goverter:map MineYears.Germanium MineYearsGermanium - // goverter:map Cargo.Ironium Ironium - // goverter:map Cargo.Boranium Boranium - // goverter:map Cargo.Germanium Germanium - // goverter:map Cargo.Colonists Colonists + // goverter:autoMap Cargo ConvertGamePlanet(source *cs.Planet) *Planet - // goverter:mapExtend Hab ExtendHab - // goverter:mapExtend BaseHab ExtendBaseHab - // goverter:mapExtend TerraformedAmount ExtendTerraformedAmount - // goverter:mapExtend MineralConcentration ExtendMineralConcentration - // goverter:mapExtend MineYears ExtendMineYears - // goverter:mapExtend Cargo ExtendPlanetCargo - // goverter:mapExtend MapObject ExtendPlanetMapObject - // goverter:mapExtend PlanetOrders ExtendPlanetPlanetOrders + // goverter:map . Hab + // goverter:map . BaseHab | ExtendBaseHab + // goverter:map . TerraformedAmount | ExtendTerraformedAmount + // goverter:map . MineralConcentration | ExtendMineralConcentration + // goverter:map . MineYears | ExtendMineYears + // goverter:map . Cargo + // goverter:map . MapObject | ExtendPlanetMapObject + // goverter:map . PlanetOrders // goverter:ignore Starbase ConvertPlanet(source *Planet) *cs.Planet - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.PlayerNum PlayerNum - // goverter:map MapObject.Tags Tags - // goverter:map FleetOrders.BattlePlanNum BattlePlanNum - // goverter:map FleetOrders.Waypoints Waypoints - // goverter:map FleetOrders.RepeatOrders RepeatOrders - // goverter:map FleetOrders.Purpose Purpose + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject + // goverter:autoMap FleetOrders // goverter:map Heading.X HeadingX // goverter:map Heading.Y HeadingY // goverter:map PreviousPosition.X PreviousPositionX // goverter:map PreviousPosition.Y PreviousPositionY - // goverter:map Cargo.Ironium Ironium - // goverter:map Cargo.Boranium Boranium - // goverter:map Cargo.Germanium Germanium - // goverter:map Cargo.Colonists Colonists + // goverter:autoMap Cargo ConvertGameFleet(source *cs.Fleet) *Fleet - // goverter:mapExtend Heading ExtendFleetHeading - // goverter:mapExtend PreviousPosition ExtendFleetPreviousPosition - // goverter:mapExtend Cargo ExtendFleetCargo - // goverter:mapExtend MapObject ExtendFleetMapObject - // goverter:mapExtend FleetOrders ExtendFleetFleetOrders + // goverter:map . Heading | ExtendFleetHeading + // goverter:map . PreviousPosition | ExtendFleetPreviousPosition + // goverter:map . Cargo + // goverter:map . MapObject | ExtendFleetMapObject + // goverter:map . FleetOrders | ExtendFleetFleetOrders ConvertFleet(source *Fleet) *cs.Fleet - // goverter:map GameDBObject.ID ID - // goverter:map GameDBObject.GameID GameID - // goverter:map GameDBObject.CreatedAt CreatedAt - // goverter:map GameDBObject.UpdatedAt UpdatedAt + // goverter:autoMap GameDBObject // goverter:ignore CanDelete - // goverter:ignore Delete ConvertGameShipDesign(source *cs.ShipDesign) *ShipDesign // goverter:ignore Dirty - // goverter:ignore CanDelete // goverter:ignore Delete - // goverter:mapExtend GameDBObject ExtendShipDesignGameDBObject + // goverter:map . GameDBObject ConvertShipDesign(source *ShipDesign) *cs.ShipDesign - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.Tags Tags - // goverter:ignore PlayerNum + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject ConvertGameWormhole(source *cs.Wormhole) *Wormhole - // goverter:mapExtend MapObject ExtendWormholeMapObject + // goverter:map . MapObject ConvertWormhole(source *Wormhole) *cs.Wormhole - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.Tags Tags + // goverter:map . GameDBObject + // goverter:map . Position + // goverter:map Type | MapObjectTypeWormhole + // goverter:ignore Dirty + // goverter:ignore Delete + // goverter:ignore PlayerNum + wormHoleMapObject(source Wormhole) cs.MapObject + + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject // goverter:map Heading.X HeadingX // goverter:map Heading.Y HeadingY - // goverter:ignore PlayerNum ConvertGameMysteryTrader(source *cs.MysteryTrader) *MysteryTrader - // goverter:mapExtend MapObject ExtendMysteryTraderMapObject - // goverter:mapExtend Heading ExtendMysteryTraderHeading + // goverter:map . MapObject | ExtendMysteryTraderMapObject + // goverter:map . Heading | ExtendMysteryTraderHeading ConvertMysteryTrader(source *MysteryTrader) *cs.MysteryTrader - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.Tags Tags - // goverter:map MapObject.PlayerNum PlayerNum - // goverter:map Cargo.Ironium Ironium - // goverter:map Cargo.Boranium Boranium - // goverter:map Cargo.Germanium Germanium + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject + // goverter:autoMap Cargo ConvertGameSalvage(source *cs.Salvage) *Salvage - // goverter:mapExtend MapObject ExtendSalvageMapObject - // goverter:mapExtend Cargo ExtendSalvageCargo + // goverter:map . MapObject | ExtendSalvageMapObject + // goverter:map . Cargo ConvertSalvage(source *Salvage) *cs.Salvage - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.PlayerNum PlayerNum - // goverter:map MapObject.Tags Tags + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject // goverter:map MineFieldOrders.Detonate Detonate ConvertGameMineField(source *cs.MineField) *MineField - // goverter:mapExtend MapObject ExtendMineFieldMapObject - // goverter:mapExtend MineFieldOrders ExtendMineFieldMineFieldOrders + // goverter:map . MapObject | ExtendMineFieldMapObject + // goverter:map . MineFieldOrders ConvertMineField(source *MineField) *cs.MineField - // goverter:map MapObject.GameDBObject.ID ID - // goverter:map MapObject.GameDBObject.GameID GameID - // goverter:map MapObject.GameDBObject.CreatedAt CreatedAt - // goverter:map MapObject.GameDBObject.UpdatedAt UpdatedAt - // goverter:map MapObject.Type Type - // goverter:map MapObject.Dirty Dirty - // goverter:map MapObject.Delete Delete - // goverter:map MapObject.Position.X X - // goverter:map MapObject.Position.Y Y - // goverter:map MapObject.Name Name - // goverter:map MapObject.Num Num - // goverter:map MapObject.PlayerNum PlayerNum - // goverter:map MapObject.Tags Tags + // goverter:autoMap MapObject.GameDBObject + // goverter:autoMap MapObject.Position + // goverter:autoMap MapObject + // goverter:autoMap Cargo // goverter:map Cargo.Ironium Ironium // goverter:map Cargo.Boranium Boranium // goverter:map Cargo.Germanium Germanium @@ -406,10 +299,20 @@ type Converter interface { // goverter:map Heading.Y HeadingY ConvertGameMineralPacket(source *cs.MineralPacket) *MineralPacket - // goverter:mapExtend MapObject ExtendMineralPacketMapObject - // goverter:mapExtend Cargo ExtendMineralPacketCargo - // goverter:mapExtend Heading ExtendMineralPacketHeading + // goverter:map . MapObject | ExtendMineralPacketMapObject + // goverter:map . Cargo + // goverter:map . Heading | ExtendMineralPacketHeading ConvertMineralPacket(source *MineralPacket) *cs.MineralPacket + + // goverter:ignore Colonists + salvageCargo(source Salvage) cs.Cargo + + // goverter:ignore Colonists + mineralPaketCargo(source MineralPacket) cs.Cargo +} + +func MapObjectTypeWormhole() cs.MapObjectType { + return cs.MapObjectTypeWormhole } func TimeToTime(source time.Time) time.Time { @@ -709,82 +612,6 @@ func GamePlayerStatsToPlayerStats(source *cs.PlayerStats) *PlayerStats { return (*PlayerStats)(source) } -func ExtendPlayerPlayerOrders(source Player) cs.PlayerOrders { - return cs.PlayerOrders{ - Researching: source.Researching, - NextResearchField: source.NextResearchField, - ResearchAmount: source.ResearchAmount, - } -} - -func ExtendPlayerPlayerPlans(source Player) cs.PlayerPlans { - plans := cs.PlayerPlans{} - - if source.ProductionPlans != nil { - plans.ProductionPlans = *source.ProductionPlans - } - - if source.BattlePlans != nil { - plans.BattlePlans = *source.BattlePlans - } - - if source.TransportPlans != nil { - plans.TransportPlans = *source.TransportPlans - } - - return plans -} - -func ExtendPlayerPlayerIntels(source Player) cs.PlayerIntels { - intels := cs.PlayerIntels{} - - if source.PlayerIntels != nil { - intels.PlayerIntels = *source.PlayerIntels - } - - if source.ScoreIntels != nil { - intels.ScoreIntels = *source.ScoreIntels - } - - if source.BattleRecords != nil { - intels.BattleRecords = *source.BattleRecords - } - - if source.PlanetIntels != nil { - intels.PlanetIntels = *source.PlanetIntels - } - - if source.FleetIntels != nil { - intels.FleetIntels = *source.FleetIntels - } - - if source.ShipDesignIntels != nil { - intels.ShipDesignIntels = *source.ShipDesignIntels - } - - if source.MineralPacketIntels != nil { - intels.MineralPacketIntels = *source.MineralPacketIntels - } - - if source.SalvageIntels != nil { - intels.SalvageIntels = *source.SalvageIntels - } - - if source.MineFieldIntels != nil { - intels.MineFieldIntels = *source.MineFieldIntels - } - - if source.WormholeIntels != nil { - intels.WormholeIntels = *source.WormholeIntels - } - - if source.MysteryTraderIntels != nil { - intels.MysteryTraderIntels = *source.MysteryTraderIntels - } - - return intels -} - func PlanetSpecToGamePlanetSpec(source *PlanetSpec) cs.PlanetSpec { return (cs.PlanetSpec)(*source) } @@ -865,48 +692,6 @@ func GameMysteryTraderSpecToMysteryTraderSpec(source cs.MysteryTraderSpec) *Myst return (*MysteryTraderSpec)(&source) } -func ExtendGameDBObject(source Game) cs.DBObject { - return cs.DBObject{ - ID: source.ID, - CreatedAt: source.CreatedAt, - UpdatedAt: source.UpdatedAt, - } -} - -func ExtendRaceDBObject(source Race) cs.DBObject { - return cs.DBObject{ - ID: source.ID, - CreatedAt: source.CreatedAt, - UpdatedAt: source.UpdatedAt, - } -} - -func ExtendUserDBObject(source User) cs.DBObject { - return cs.DBObject{ - ID: source.ID, - CreatedAt: source.CreatedAt, - UpdatedAt: source.UpdatedAt, - } -} - -func ExtendPlayerGameDBObject(source Player) cs.GameDBObject { - return cs.GameDBObject{ - ID: source.ID, - GameID: source.GameID, - CreatedAt: source.CreatedAt, - UpdatedAt: source.UpdatedAt, - } -} - -func ExtendShipDesignGameDBObject(source ShipDesign) cs.GameDBObject { - return cs.GameDBObject{ - ID: source.ID, - GameID: source.GameID, - CreatedAt: source.CreatedAt.Time, - UpdatedAt: source.UpdatedAt.Time, - } -} - func ExtendResearchCost(source Race) cs.ResearchCost { return cs.ResearchCost{ Energy: source.ResearchCostEnergy, @@ -972,17 +757,6 @@ func ExtendTechLevels(source Player) cs.TechLevel { } } -func ExtendTechLevelsSpent(source Player) cs.TechLevel { - return cs.TechLevel{ - Energy: source.TechLevelsSpentEnergy, - Weapons: source.TechLevelsSpentWeapons, - Propulsion: source.TechLevelsSpentPropulsion, - Construction: source.TechLevelsSpentConstruction, - Electronics: source.TechLevelsSpentElectronics, - Biotechnology: source.TechLevelsSpentBiotechnology, - } -} - func ExtendPlanetMapObject(source Planet) cs.MapObject { return cs.MapObject{ GameDBObject: cs.GameDBObject{ @@ -1003,26 +777,6 @@ func ExtendPlanetMapObject(source Planet) cs.MapObject { } } -func ExtendPlanetPlanetOrders(source Planet) cs.PlanetOrders { - return cs.PlanetOrders{ - ContributesOnlyLeftoverToResearch: source.ContributesOnlyLeftoverToResearch, - ProductionQueue: *source.ProductionQueue, - RouteTargetType: source.RouteTargetType, - RouteTargetNum: source.RouteTargetNum, - RouteTargetPlayerNum: source.RouteTargetPlayerNum, - PacketTargetNum: source.PacketTargetNum, - PacketSpeed: source.PacketSpeed, - } -} - -func ExtendHab(source Planet) cs.Hab { - return cs.Hab{ - Grav: source.Grav, - Temp: source.Temp, - Rad: source.Rad, - } -} - func ExtendBaseHab(source Planet) cs.Hab { return cs.Hab{ Grav: source.BaseGrav, @@ -1055,15 +809,6 @@ func ExtendMineYears(source Planet) cs.Mineral { } } -func ExtendPlanetCargo(source Planet) cs.Cargo { - return cs.Cargo{ - Ironium: source.Ironium, - Boranium: source.Boranium, - Germanium: source.Germanium, - Colonists: source.Colonists, - } -} - func ExtendFleetMapObject(source Fleet) cs.MapObject { return cs.MapObject{ GameDBObject: cs.GameDBObject{ @@ -1093,15 +838,6 @@ func ExtendFleetFleetOrders(source Fleet) cs.FleetOrders { } } -func ExtendFleetCargo(source Fleet) cs.Cargo { - return cs.Cargo{ - Ironium: source.Ironium, - Boranium: source.Boranium, - Germanium: source.Germanium, - Colonists: source.Colonists, - } -} - func ExtendFleetHeading(source Fleet) cs.Vector { return cs.Vector{ X: source.HeadingX, @@ -1119,25 +855,6 @@ func ExtendFleetPreviousPosition(source Fleet) *cs.Vector { } } -func ExtendWormholeMapObject(source Wormhole) cs.MapObject { - return cs.MapObject{ - GameDBObject: cs.GameDBObject{ - ID: source.ID, - GameID: source.GameID, - CreatedAt: source.CreatedAt, - UpdatedAt: source.UpdatedAt, - }, - Type: cs.MapObjectTypeWormhole, - Position: cs.Vector{ - X: source.X, - Y: source.Y, - }, - Name: source.Name, - Num: source.Num, - Tags: TagsToGameTags(source.Tags), - } -} - func ExtendMysteryTraderMapObject(source MysteryTrader) cs.MapObject { return cs.MapObject{ GameDBObject: cs.GameDBObject{ @@ -1184,14 +901,6 @@ func ExtendSalvageMapObject(source Salvage) cs.MapObject { } } -func ExtendSalvageCargo(source Salvage) cs.Cargo { - return cs.Cargo{ - Ironium: source.Ironium, - Boranium: source.Boranium, - Germanium: source.Germanium, - } -} - func ExtendMineFieldMapObject(source MineField) cs.MapObject { return cs.MapObject{ GameDBObject: cs.GameDBObject{ @@ -1212,12 +921,6 @@ func ExtendMineFieldMapObject(source MineField) cs.MapObject { } } -func ExtendMineFieldMineFieldOrders(source MineField) cs.MineFieldOrders { - return cs.MineFieldOrders{ - Detonate: source.Detonate, - } -} - func ExtendMineralPacketHeading(source MineralPacket) cs.Vector { return cs.Vector{ X: source.HeadingX, @@ -1244,11 +947,3 @@ func ExtendMineralPacketMapObject(source MineralPacket) cs.MapObject { Tags: TagsToGameTags(source.Tags), } } - -func ExtendMineralPacketCargo(source MineralPacket) cs.Cargo { - return cs.Cargo{ - Ironium: source.Ironium, - Boranium: source.Boranium, - Germanium: source.Germanium, - } -} diff --git a/db/converter.init.go b/db/converter.init.go new file mode 100644 index 00000000..962ca8f2 --- /dev/null +++ b/db/converter.init.go @@ -0,0 +1,7 @@ +//go:build !goverter + +package db + +func init() { + c = &GameConverter{} +} diff --git a/db/db.go b/db/db.go index 6490a866..576c98e6 100644 --- a/db/db.go +++ b/db/db.go @@ -185,7 +185,7 @@ func NewConn() DBConn { func (conn *dbConn) NewReadClient() Client { return &client{ reader: conn.dbRead, - converter: &GameConverter{}, + converter: c, } } @@ -193,7 +193,7 @@ func (conn *dbConn) NewReadWriteClient() Client { return &client{ reader: conn.dbRead, writer: conn.dbWrite, - converter: &GameConverter{}, + converter: c, } } @@ -203,7 +203,7 @@ func newTransactionClient(tx *sqlx.Tx) *client { reader: tx, writer: tx, tx: tx, - converter: &GameConverter{}, + converter: c, } } diff --git a/db/generated.go b/db/generated.go index d034a4d1..1eff6a04 100755 --- a/db/generated.go +++ b/db/generated.go @@ -1,4 +1,5 @@ // Code generated by github.com/jmattheis/goverter, DO NOT EDIT. +//go:build !goverter package db @@ -12,14 +13,28 @@ type GameConverter struct{} func (c *GameConverter) ConvertFleet(source *Fleet) *cs.Fleet { var pCsFleet *cs.Fleet if source != nil { - csFleet := c.dbFleetToCsFleet((*source)) + var csFleet cs.Fleet + csFleet.MapObject = ExtendFleetMapObject((*source)) + csFleet.FleetOrders = ExtendFleetFleetOrders((*source)) + csFleet.PlanetNum = (*source).PlanetNum + csFleet.BaseName = (*source).BaseName + csFleet.Cargo = c.dbFleetToCsCargo((*source)) + csFleet.Fuel = (*source).Fuel + csFleet.Age = (*source).Age + csFleet.Tokens = ShipTokensToGameShipTokens((*source).Tokens) + csFleet.Heading = ExtendFleetHeading((*source)) + csFleet.WarpSpeed = (*source).WarpSpeed + csFleet.PreviousPosition = ExtendFleetPreviousPosition((*source)) + csFleet.OrbitingPlanetNum = (*source).OrbitingPlanetNum + csFleet.Starbase = (*source).Starbase + csFleet.Spec = FleetSpecToGameFleetSpec((*source).Spec) pCsFleet = &csFleet } return pCsFleet } func (c *GameConverter) ConvertGame(source Game) cs.Game { var csGame cs.Game - csGame.DBObject = ExtendGameDBObject(source) + csGame.DBObject = c.dbGameToCsDBObject(source) csGame.HostID = source.HostID csGame.Name = source.Name csGame.State = cs.GameState(source.State) @@ -46,7 +61,56 @@ func (c *GameConverter) ConvertGame(source Game) cs.Game { func (c *GameConverter) ConvertGameFleet(source *cs.Fleet) *Fleet { var pDbFleet *Fleet if source != nil { - dbFleet := c.csFleetToDbFleet((*source)) + var dbFleet Fleet + dbFleet.ID = (*source).MapObject.GameDBObject.ID + dbFleet.GameID = (*source).MapObject.GameDBObject.GameID + dbFleet.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbFleet.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbFleet.X = (*source).MapObject.Position.X + dbFleet.Y = (*source).MapObject.Position.Y + dbFleet.Name = (*source).MapObject.Name + dbFleet.Num = (*source).MapObject.Num + dbFleet.PlayerNum = (*source).MapObject.PlayerNum + dbFleet.Tags = GameTagsToTags((*source).MapObject.Tags) + dbFleet.Tokens = GameShipTokensToShipTokens((*source).Tokens) + dbFleet.Waypoints = GameWaypointsToWaypoints((*source).FleetOrders.Waypoints) + dbFleet.RepeatOrders = (*source).FleetOrders.RepeatOrders + dbFleet.PlanetNum = (*source).PlanetNum + dbFleet.BaseName = (*source).BaseName + dbFleet.Ironium = (*source).Cargo.Ironium + dbFleet.Boranium = (*source).Cargo.Boranium + dbFleet.Germanium = (*source).Cargo.Germanium + dbFleet.Colonists = (*source).Cargo.Colonists + dbFleet.Fuel = (*source).Fuel + dbFleet.Age = (*source).Age + dbFleet.BattlePlanNum = (*source).FleetOrders.BattlePlanNum + dbFleet.HeadingX = (*source).Heading.X + dbFleet.HeadingY = (*source).Heading.Y + dbFleet.WarpSpeed = (*source).WarpSpeed + var pFloat64 *float64 + if (*source).PreviousPosition != nil { + pFloat64 = &(*source).PreviousPosition.X + } + var pFloat642 *float64 + if pFloat64 != nil { + xfloat64 := *pFloat64 + pFloat642 = &xfloat64 + } + dbFleet.PreviousPositionX = pFloat642 + var pFloat643 *float64 + if (*source).PreviousPosition != nil { + pFloat643 = &(*source).PreviousPosition.Y + } + var pFloat644 *float64 + if pFloat643 != nil { + xfloat642 := *pFloat643 + pFloat644 = &xfloat642 + } + dbFleet.PreviousPositionY = pFloat644 + dbFleet.OrbitingPlanetNum = (*source).OrbitingPlanetNum + dbFleet.Starbase = (*source).Starbase + dbFleet.Purpose = cs.FleetPurpose((*source).FleetOrders.Purpose) + dbFleet.Spec = GameFleetSpecToFleetSpec((*source).Spec) pDbFleet = &dbFleet } return pDbFleet @@ -54,7 +118,42 @@ func (c *GameConverter) ConvertGameFleet(source *cs.Fleet) *Fleet { func (c *GameConverter) ConvertGameGame(source *cs.Game) *Game { var pDbGame *Game if source != nil { - dbGame := c.csGameToDbGame((*source)) + var dbGame Game + dbGame.ID = (*source).DBObject.ID + dbGame.CreatedAt = TimeToTime((*source).DBObject.CreatedAt) + dbGame.UpdatedAt = TimeToTime((*source).DBObject.UpdatedAt) + dbGame.HostID = (*source).HostID + dbGame.Name = (*source).Name + dbGame.State = cs.GameState((*source).State) + dbGame.Public = (*source).Public + dbGame.Hash = (*source).Hash + dbGame.Size = cs.Size((*source).Size) + dbGame.Density = cs.Density((*source).Density) + dbGame.PlayerPositions = cs.PlayerPositions((*source).PlayerPositions) + dbGame.RandomEvents = (*source).RandomEvents + dbGame.ComputerPlayersFormAlliances = (*source).ComputerPlayersFormAlliances + dbGame.PublicPlayerScores = (*source).PublicPlayerScores + dbGame.StartMode = cs.GameStartMode((*source).StartMode) + dbGame.QuickStartTurns = (*source).QuickStartTurns + dbGame.OpenPlayerSlots = (*source).OpenPlayerSlots + dbGame.NumPlayers = (*source).NumPlayers + dbGame.VictoryConditionsConditions = cs.Bitmask((*source).VictoryConditions.Conditions) + dbGame.VictoryConditionsNumCriteriaRequired = (*source).VictoryConditions.NumCriteriaRequired + dbGame.VictoryConditionsYearsPassed = (*source).VictoryConditions.YearsPassed + dbGame.VictoryConditionsOwnPlanets = (*source).VictoryConditions.OwnPlanets + dbGame.VictoryConditionsAttainTechLevel = (*source).VictoryConditions.AttainTechLevel + dbGame.VictoryConditionsAttainTechLevelNumFields = (*source).VictoryConditions.AttainTechLevelNumFields + dbGame.VictoryConditionsExceedsScore = (*source).VictoryConditions.ExceedsScore + dbGame.VictoryConditionsExceedsSecondPlaceScore = (*source).VictoryConditions.ExceedsSecondPlaceScore + dbGame.VictoryConditionsProductionCapacity = (*source).VictoryConditions.ProductionCapacity + dbGame.VictoryConditionsOwnCapitalShips = (*source).VictoryConditions.OwnCapitalShips + dbGame.VictoryConditionsHighestScoreAfterYears = (*source).VictoryConditions.HighestScoreAfterYears + dbGame.Seed = (*source).Seed + dbGame.Rules = GameRulesToRules((*source).Rules) + dbGame.AreaX = (*source).Area.X + dbGame.AreaY = (*source).Area.Y + dbGame.Year = (*source).Year + dbGame.VictorDeclared = (*source).VictorDeclared pDbGame = &dbGame } return pDbGame @@ -62,7 +161,21 @@ func (c *GameConverter) ConvertGameGame(source *cs.Game) *Game { func (c *GameConverter) ConvertGameMineField(source *cs.MineField) *MineField { var pDbMineField *MineField if source != nil { - dbMineField := c.csMineFieldToDbMineField((*source)) + var dbMineField MineField + dbMineField.ID = (*source).MapObject.GameDBObject.ID + dbMineField.GameID = (*source).MapObject.GameDBObject.GameID + dbMineField.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbMineField.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbMineField.X = (*source).MapObject.Position.X + dbMineField.Y = (*source).MapObject.Position.Y + dbMineField.Name = (*source).MapObject.Name + dbMineField.Num = (*source).MapObject.Num + dbMineField.PlayerNum = (*source).MapObject.PlayerNum + dbMineField.Tags = GameTagsToTags((*source).MapObject.Tags) + dbMineField.MineFieldType = cs.MineFieldType((*source).MineFieldType) + dbMineField.NumMines = (*source).NumMines + dbMineField.Detonate = (*source).MineFieldOrders.Detonate + dbMineField.Spec = GameMineFieldSpecToMineFieldSpec((*source).Spec) pDbMineField = &dbMineField } return pDbMineField @@ -70,7 +183,27 @@ func (c *GameConverter) ConvertGameMineField(source *cs.MineField) *MineField { func (c *GameConverter) ConvertGameMineralPacket(source *cs.MineralPacket) *MineralPacket { var pDbMineralPacket *MineralPacket if source != nil { - dbMineralPacket := c.csMineralPacketToDbMineralPacket((*source)) + var dbMineralPacket MineralPacket + dbMineralPacket.ID = (*source).MapObject.GameDBObject.ID + dbMineralPacket.GameID = (*source).MapObject.GameDBObject.GameID + dbMineralPacket.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbMineralPacket.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbMineralPacket.X = (*source).MapObject.Position.X + dbMineralPacket.Y = (*source).MapObject.Position.Y + dbMineralPacket.Name = (*source).MapObject.Name + dbMineralPacket.Num = (*source).MapObject.Num + dbMineralPacket.PlayerNum = (*source).MapObject.PlayerNum + dbMineralPacket.Tags = GameTagsToTags((*source).MapObject.Tags) + dbMineralPacket.TargetPlanetNum = (*source).TargetPlanetNum + dbMineralPacket.Ironium = (*source).Cargo.Ironium + dbMineralPacket.Boranium = (*source).Cargo.Boranium + dbMineralPacket.Germanium = (*source).Cargo.Germanium + dbMineralPacket.SafeWarpSpeed = (*source).SafeWarpSpeed + dbMineralPacket.WarpSpeed = (*source).WarpSpeed + dbMineralPacket.ScanRange = (*source).ScanRange + dbMineralPacket.ScanRangePen = (*source).ScanRangePen + dbMineralPacket.HeadingX = (*source).Heading.X + dbMineralPacket.HeadingY = (*source).Heading.Y pDbMineralPacket = &dbMineralPacket } return pDbMineralPacket @@ -78,7 +211,20 @@ func (c *GameConverter) ConvertGameMineralPacket(source *cs.MineralPacket) *Mine func (c *GameConverter) ConvertGameMysteryTrader(source *cs.MysteryTrader) *MysteryTrader { var pDbMysteryTrader *MysteryTrader if source != nil { - dbMysteryTrader := c.csMysteryTraderToDbMysteryTrader((*source)) + var dbMysteryTrader MysteryTrader + dbMysteryTrader.ID = (*source).MapObject.GameDBObject.ID + dbMysteryTrader.GameID = (*source).MapObject.GameDBObject.GameID + dbMysteryTrader.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbMysteryTrader.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbMysteryTrader.X = (*source).MapObject.Position.X + dbMysteryTrader.Y = (*source).MapObject.Position.Y + dbMysteryTrader.Name = (*source).MapObject.Name + dbMysteryTrader.Num = (*source).MapObject.Num + dbMysteryTrader.Tags = GameTagsToTags((*source).MapObject.Tags) + dbMysteryTrader.HeadingX = (*source).Heading.X + dbMysteryTrader.HeadingY = (*source).Heading.Y + dbMysteryTrader.WarpSpeed = (*source).WarpSpeed + dbMysteryTrader.Spec = GameMysteryTraderSpecToMysteryTraderSpec((*source).Spec) pDbMysteryTrader = &dbMysteryTrader } return pDbMysteryTrader @@ -86,7 +232,50 @@ func (c *GameConverter) ConvertGameMysteryTrader(source *cs.MysteryTrader) *Myst func (c *GameConverter) ConvertGamePlanet(source *cs.Planet) *Planet { var pDbPlanet *Planet if source != nil { - dbPlanet := c.csPlanetToDbPlanet((*source)) + var dbPlanet Planet + dbPlanet.ID = (*source).MapObject.GameDBObject.ID + dbPlanet.GameID = (*source).MapObject.GameDBObject.GameID + dbPlanet.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbPlanet.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbPlanet.X = (*source).MapObject.Position.X + dbPlanet.Y = (*source).MapObject.Position.Y + dbPlanet.Name = (*source).MapObject.Name + dbPlanet.Num = (*source).MapObject.Num + dbPlanet.PlayerNum = (*source).MapObject.PlayerNum + dbPlanet.Tags = GameTagsToTags((*source).MapObject.Tags) + dbPlanet.Grav = (*source).Hab.Grav + dbPlanet.Temp = (*source).Hab.Temp + dbPlanet.Rad = (*source).Hab.Rad + dbPlanet.BaseGrav = (*source).BaseHab.Grav + dbPlanet.BaseTemp = (*source).BaseHab.Temp + dbPlanet.BaseRad = (*source).BaseHab.Rad + dbPlanet.TerraformedAmountGrav = (*source).TerraformedAmount.Grav + dbPlanet.TerraformedAmountTemp = (*source).TerraformedAmount.Temp + dbPlanet.TerraformedAmountRad = (*source).TerraformedAmount.Rad + dbPlanet.MineralConcIronium = (*source).MineralConcentration.Ironium + dbPlanet.MineralConcBoranium = (*source).MineralConcentration.Boranium + dbPlanet.MineralConcGermanium = (*source).MineralConcentration.Germanium + dbPlanet.MineYearsIronium = (*source).MineYears.Ironium + dbPlanet.MineYearsBoranium = (*source).MineYears.Boranium + dbPlanet.MineYearsGermanium = (*source).MineYears.Germanium + dbPlanet.Ironium = (*source).Cargo.Ironium + dbPlanet.Boranium = (*source).Cargo.Boranium + dbPlanet.Germanium = (*source).Cargo.Germanium + dbPlanet.Colonists = (*source).Cargo.Colonists + dbPlanet.Mines = (*source).Mines + dbPlanet.Factories = (*source).Factories + dbPlanet.Defenses = (*source).Defenses + dbPlanet.Homeworld = (*source).Homeworld + dbPlanet.ContributesOnlyLeftoverToResearch = (*source).PlanetOrders.ContributesOnlyLeftoverToResearch + dbPlanet.Scanner = (*source).Scanner + dbPlanet.RouteTargetType = cs.MapObjectType((*source).PlanetOrders.RouteTargetType) + dbPlanet.RouteTargetNum = (*source).PlanetOrders.RouteTargetNum + dbPlanet.RouteTargetPlayerNum = (*source).PlanetOrders.RouteTargetPlayerNum + dbPlanet.PacketTargetNum = (*source).PlanetOrders.PacketTargetNum + dbPlanet.PacketSpeed = (*source).PlanetOrders.PacketSpeed + dbPlanet.RandomArtifact = (*source).RandomArtifact + dbPlanet.ProductionQueue = GameProductionQueueItemsToProductionQueueItems((*source).PlanetOrders.ProductionQueue) + dbPlanet.Spec = GamePlanetSpecToPlanetSpec((*source).Spec) pDbPlanet = &dbPlanet } return pDbPlanet @@ -94,7 +283,59 @@ func (c *GameConverter) ConvertGamePlanet(source *cs.Planet) *Planet { func (c *GameConverter) ConvertGamePlayer(source *cs.Player) *Player { var pDbPlayer *Player if source != nil { - dbPlayer := c.csPlayerToDbPlayer((*source)) + var dbPlayer Player + dbPlayer.ID = (*source).GameDBObject.ID + dbPlayer.CreatedAt = TimeToTime((*source).GameDBObject.CreatedAt) + dbPlayer.UpdatedAt = TimeToTime((*source).GameDBObject.UpdatedAt) + dbPlayer.GameID = (*source).GameDBObject.GameID + dbPlayer.UserID = (*source).UserID + dbPlayer.Name = (*source).Name + dbPlayer.Num = (*source).Num + dbPlayer.Ready = (*source).Ready + dbPlayer.AIControlled = (*source).AIControlled + dbPlayer.Guest = (*source).Guest + dbPlayer.SubmittedTurn = (*source).SubmittedTurn + dbPlayer.Color = (*source).Color + dbPlayer.DefaultHullSet = (*source).DefaultHullSet + dbPlayer.TechLevelsEnergy = (*source).TechLevels.Energy + dbPlayer.TechLevelsWeapons = (*source).TechLevels.Weapons + dbPlayer.TechLevelsPropulsion = (*source).TechLevels.Propulsion + dbPlayer.TechLevelsConstruction = (*source).TechLevels.Construction + dbPlayer.TechLevelsElectronics = (*source).TechLevels.Electronics + dbPlayer.TechLevelsBiotechnology = (*source).TechLevels.Biotechnology + dbPlayer.TechLevelsSpentEnergy = (*source).TechLevelsSpent.Energy + dbPlayer.TechLevelsSpentWeapons = (*source).TechLevelsSpent.Weapons + dbPlayer.TechLevelsSpentPropulsion = (*source).TechLevelsSpent.Propulsion + dbPlayer.TechLevelsSpentConstruction = (*source).TechLevelsSpent.Construction + dbPlayer.TechLevelsSpentElectronics = (*source).TechLevelsSpent.Electronics + dbPlayer.TechLevelsSpentBiotechnology = (*source).TechLevelsSpent.Biotechnology + dbPlayer.ResearchAmount = (*source).PlayerOrders.ResearchAmount + dbPlayer.ResearchSpentLastYear = (*source).ResearchSpentLastYear + dbPlayer.NextResearchField = cs.NextResearchField((*source).PlayerOrders.NextResearchField) + dbPlayer.Researching = cs.TechField((*source).PlayerOrders.Researching) + dbPlayer.BattlePlans = GameBattlePlansToBattlePlans((*source).PlayerPlans.BattlePlans) + dbPlayer.ProductionPlans = GameProductionPlansToProductionPlans((*source).PlayerPlans.ProductionPlans) + dbPlayer.TransportPlans = GameTransportPlansToTransportPlans((*source).PlayerPlans.TransportPlans) + dbPlayer.Relations = GamePlayerRelationshipsToPlayerRelationships((*source).Relations) + dbPlayer.Messages = GamePlayerMessagesToPlayerMessages((*source).Messages) + dbPlayer.BattleRecords = GameBattleRecordsToBattleRecords((*source).PlayerIntels.BattleRecords) + dbPlayer.PlayerIntels = GamePlayerIntelsToPlayerIntels((*source).PlayerIntels.PlayerIntels) + dbPlayer.ScoreIntels = GameScoreIntelsToScoreIntels((*source).PlayerIntels.ScoreIntels) + dbPlayer.PlanetIntels = GamePlanetIntelsToPlanetIntels((*source).PlayerIntels.PlanetIntels) + dbPlayer.FleetIntels = GameFleetIntelsToFleetIntels((*source).PlayerIntels.FleetIntels) + dbPlayer.StarbaseIntels = GameFleetIntelsToFleetIntels((*source).PlayerIntels.StarbaseIntels) + dbPlayer.ShipDesignIntels = GameShipDesignIntelsToShipDesignIntels((*source).PlayerIntels.ShipDesignIntels) + dbPlayer.MineralPacketIntels = GameMineralPacketIntelsToMineralPacketIntels((*source).PlayerIntels.MineralPacketIntels) + dbPlayer.MineFieldIntels = GameMineFieldIntelsToMineFieldIntels((*source).PlayerIntels.MineFieldIntels) + dbPlayer.WormholeIntels = GameWormholeIntelsToWormholeIntels((*source).PlayerIntels.WormholeIntels) + dbPlayer.MysteryTraderIntels = GameMysteryTraderIntelsToMysteryTraderIntels((*source).PlayerIntels.MysteryTraderIntels) + dbPlayer.SalvageIntels = GameSalvageIntelsToSalvageIntels((*source).PlayerIntels.SalvageIntels) + dbPlayer.Race = GameRaceToPlayerRace((*source).Race) + dbPlayer.Stats = GamePlayerStatsToPlayerStats((*source).Stats) + dbPlayer.ScoreHistory = GamePlayerScoresToPlayerScores((*source).ScoreHistory) + dbPlayer.AchievedVictoryConditions = cs.Bitmask((*source).AchievedVictoryConditions) + dbPlayer.Victor = (*source).Victor + dbPlayer.Spec = GamePlayerSpecToPlayerSpec((*source).Spec) pDbPlayer = &dbPlayer } return pDbPlayer @@ -102,7 +343,42 @@ func (c *GameConverter) ConvertGamePlayer(source *cs.Player) *Player { func (c *GameConverter) ConvertGameRace(source *cs.Race) *Race { var pDbRace *Race if source != nil { - dbRace := c.csRaceToDbRace((*source)) + var dbRace Race + dbRace.ID = (*source).DBObject.ID + dbRace.CreatedAt = TimeToTime((*source).DBObject.CreatedAt) + dbRace.UpdatedAt = TimeToTime((*source).DBObject.UpdatedAt) + dbRace.UserID = (*source).UserID + dbRace.Name = (*source).Name + dbRace.PluralName = (*source).PluralName + dbRace.SpendLeftoverPointsOn = cs.SpendLeftoverPointsOn((*source).SpendLeftoverPointsOn) + dbRace.PRT = cs.PRT((*source).PRT) + dbRace.LRTs = cs.Bitmask((*source).LRTs) + dbRace.HabLowGrav = (*source).HabLow.Grav + dbRace.HabLowTemp = (*source).HabLow.Temp + dbRace.HabLowRad = (*source).HabLow.Rad + dbRace.HabHighGrav = (*source).HabHigh.Grav + dbRace.HabHighTemp = (*source).HabHigh.Temp + dbRace.HabHighRad = (*source).HabHigh.Rad + dbRace.GrowthRate = (*source).GrowthRate + dbRace.PopEfficiency = (*source).PopEfficiency + dbRace.FactoryOutput = (*source).FactoryOutput + dbRace.FactoryCost = (*source).FactoryCost + dbRace.NumFactories = (*source).NumFactories + dbRace.FactoriesCostLess = (*source).FactoriesCostLess + dbRace.ImmuneGrav = (*source).ImmuneGrav + dbRace.ImmuneTemp = (*source).ImmuneTemp + dbRace.ImmuneRad = (*source).ImmuneRad + dbRace.MineOutput = (*source).MineOutput + dbRace.MineCost = (*source).MineCost + dbRace.NumMines = (*source).NumMines + dbRace.ResearchCostEnergy = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Energy) + dbRace.ResearchCostWeapons = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Weapons) + dbRace.ResearchCostPropulsion = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Propulsion) + dbRace.ResearchCostConstruction = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Construction) + dbRace.ResearchCostElectronics = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Electronics) + dbRace.ResearchCostBiotechnology = c.csResearchCostLevelToCsResearchCostLevel((*source).ResearchCost.Biotechnology) + dbRace.TechsStartHigh = (*source).TechsStartHigh + dbRace.Spec = GameRaceSpecToRaceSpec((*source).Spec) pDbRace = &dbRace } return pDbRace @@ -110,7 +386,20 @@ func (c *GameConverter) ConvertGameRace(source *cs.Race) *Race { func (c *GameConverter) ConvertGameSalvage(source *cs.Salvage) *Salvage { var pDbSalvage *Salvage if source != nil { - dbSalvage := c.csSalvageToDbSalvage((*source)) + var dbSalvage Salvage + dbSalvage.ID = (*source).MapObject.GameDBObject.ID + dbSalvage.GameID = (*source).MapObject.GameDBObject.GameID + dbSalvage.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbSalvage.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbSalvage.X = (*source).MapObject.Position.X + dbSalvage.Y = (*source).MapObject.Position.Y + dbSalvage.Name = (*source).MapObject.Name + dbSalvage.Num = (*source).MapObject.Num + dbSalvage.PlayerNum = (*source).MapObject.PlayerNum + dbSalvage.Tags = GameTagsToTags((*source).MapObject.Tags) + dbSalvage.Ironium = (*source).Cargo.Ironium + dbSalvage.Boranium = (*source).Cargo.Boranium + dbSalvage.Germanium = (*source).Cargo.Germanium pDbSalvage = &dbSalvage } return pDbSalvage @@ -118,7 +407,22 @@ func (c *GameConverter) ConvertGameSalvage(source *cs.Salvage) *Salvage { func (c *GameConverter) ConvertGameShipDesign(source *cs.ShipDesign) *ShipDesign { var pDbShipDesign *ShipDesign if source != nil { - dbShipDesign := c.csShipDesignToDbShipDesign((*source)) + var dbShipDesign ShipDesign + dbShipDesign.ID = (*source).GameDBObject.ID + dbShipDesign.GameID = (*source).GameDBObject.GameID + dbShipDesign.UpdatedAt = TimeToNullTime((*source).GameDBObject.UpdatedAt) + dbShipDesign.CreatedAt = TimeToNullTime((*source).GameDBObject.CreatedAt) + dbShipDesign.Num = (*source).Num + dbShipDesign.PlayerNum = (*source).PlayerNum + dbShipDesign.OriginalPlayerNum = (*source).OriginalPlayerNum + dbShipDesign.Name = (*source).Name + dbShipDesign.Version = (*source).Version + dbShipDesign.Hull = (*source).Hull + dbShipDesign.HullSetNumber = (*source).HullSetNumber + dbShipDesign.CannotDelete = (*source).CannotDelete + dbShipDesign.Slots = GameShipDesignSlotsToShipDesignSlots((*source).Slots) + dbShipDesign.Purpose = cs.ShipDesignPurpose((*source).Purpose) + dbShipDesign.Spec = GameShipDesignSpecToShipDesignSpec((*source).Spec) pDbShipDesign = &dbShipDesign } return pDbShipDesign @@ -126,7 +430,31 @@ func (c *GameConverter) ConvertGameShipDesign(source *cs.ShipDesign) *ShipDesign func (c *GameConverter) ConvertGameUser(source *cs.User) *User { var pDbUser *User if source != nil { - dbUser := c.csUserToDbUser((*source)) + var dbUser User + dbUser.ID = (*source).DBObject.ID + dbUser.CreatedAt = TimeToTime((*source).DBObject.CreatedAt) + dbUser.UpdatedAt = TimeToTime((*source).DBObject.UpdatedAt) + dbUser.GameID = (*source).GameID + dbUser.PlayerNum = (*source).PlayerNum + dbUser.Username = (*source).Username + dbUser.Password = (*source).Password + dbUser.Email = (*source).Email + dbUser.Role = cs.UserRole((*source).Role) + dbUser.Banned = (*source).Banned + dbUser.Verified = (*source).Verified + dbUser.LastLogin = c.pTimeTimeToPTimeTime((*source).LastLogin) + var pString *string + if (*source).DiscordID != nil { + xstring := *(*source).DiscordID + pString = &xstring + } + dbUser.DiscordID = pString + var pString2 *string + if (*source).DiscordAvatar != nil { + xstring2 := *(*source).DiscordAvatar + pString2 = &xstring2 + } + dbUser.DiscordAvatar = pString2 pDbUser = &dbUser } return pDbUser @@ -134,7 +462,20 @@ func (c *GameConverter) ConvertGameUser(source *cs.User) *User { func (c *GameConverter) ConvertGameWormhole(source *cs.Wormhole) *Wormhole { var pDbWormhole *Wormhole if source != nil { - dbWormhole := c.csWormholeToDbWormhole((*source)) + var dbWormhole Wormhole + dbWormhole.ID = (*source).MapObject.GameDBObject.ID + dbWormhole.GameID = (*source).MapObject.GameDBObject.GameID + dbWormhole.CreatedAt = TimeToTime((*source).MapObject.GameDBObject.CreatedAt) + dbWormhole.UpdatedAt = TimeToTime((*source).MapObject.GameDBObject.UpdatedAt) + dbWormhole.X = (*source).MapObject.Position.X + dbWormhole.Y = (*source).MapObject.Position.Y + dbWormhole.Name = (*source).MapObject.Name + dbWormhole.Num = (*source).MapObject.Num + dbWormhole.Tags = GameTagsToTags((*source).MapObject.Tags) + dbWormhole.DestinationNum = (*source).DestinationNum + dbWormhole.Stability = cs.WormholeStability((*source).Stability) + dbWormhole.YearsAtStability = (*source).YearsAtStability + dbWormhole.Spec = GameWormholeSpecToWormholeSpec((*source).Spec) pDbWormhole = &dbWormhole } return pDbWormhole @@ -152,7 +493,12 @@ func (c *GameConverter) ConvertGames(source []Game) []cs.Game { func (c *GameConverter) ConvertMineField(source *MineField) *cs.MineField { var pCsMineField *cs.MineField if source != nil { - csMineField := c.dbMineFieldToCsMineField((*source)) + var csMineField cs.MineField + csMineField.MapObject = ExtendMineFieldMapObject((*source)) + csMineField.MineFieldOrders = c.dbMineFieldToCsMineFieldOrders((*source)) + csMineField.MineFieldType = cs.MineFieldType((*source).MineFieldType) + csMineField.NumMines = (*source).NumMines + csMineField.Spec = MineFieldSpecToGameMineFieldSpec((*source).Spec) pCsMineField = &csMineField } return pCsMineField @@ -160,7 +506,15 @@ func (c *GameConverter) ConvertMineField(source *MineField) *cs.MineField { func (c *GameConverter) ConvertMineralPacket(source *MineralPacket) *cs.MineralPacket { var pCsMineralPacket *cs.MineralPacket if source != nil { - csMineralPacket := c.dbMineralPacketToCsMineralPacket((*source)) + var csMineralPacket cs.MineralPacket + csMineralPacket.MapObject = ExtendMineralPacketMapObject((*source)) + csMineralPacket.TargetPlanetNum = (*source).TargetPlanetNum + csMineralPacket.Cargo = c.mineralPaketCargo((*source)) + csMineralPacket.WarpSpeed = (*source).WarpSpeed + csMineralPacket.SafeWarpSpeed = (*source).SafeWarpSpeed + csMineralPacket.Heading = ExtendMineralPacketHeading((*source)) + csMineralPacket.ScanRange = (*source).ScanRange + csMineralPacket.ScanRangePen = (*source).ScanRangePen pCsMineralPacket = &csMineralPacket } return pCsMineralPacket @@ -168,7 +522,11 @@ func (c *GameConverter) ConvertMineralPacket(source *MineralPacket) *cs.MineralP func (c *GameConverter) ConvertMysteryTrader(source *MysteryTrader) *cs.MysteryTrader { var pCsMysteryTrader *cs.MysteryTrader if source != nil { - csMysteryTrader := c.dbMysteryTraderToCsMysteryTrader((*source)) + var csMysteryTrader cs.MysteryTrader + csMysteryTrader.MapObject = ExtendMysteryTraderMapObject((*source)) + csMysteryTrader.Heading = ExtendMysteryTraderHeading((*source)) + csMysteryTrader.WarpSpeed = (*source).WarpSpeed + csMysteryTrader.Spec = MysteryTraderSpecToGameMysteryTraderSpec((*source).Spec) pCsMysteryTrader = &csMysteryTrader } return pCsMysteryTrader @@ -176,17 +534,32 @@ func (c *GameConverter) ConvertMysteryTrader(source *MysteryTrader) *cs.MysteryT func (c *GameConverter) ConvertPlanet(source *Planet) *cs.Planet { var pCsPlanet *cs.Planet if source != nil { - csPlanet := c.dbPlanetToCsPlanet((*source)) + var csPlanet cs.Planet + csPlanet.MapObject = ExtendPlanetMapObject((*source)) + csPlanet.PlanetOrders = c.dbPlanetToCsPlanetOrders((*source)) + csPlanet.Hab = c.dbPlanetToCsHab((*source)) + csPlanet.BaseHab = ExtendBaseHab((*source)) + csPlanet.TerraformedAmount = ExtendTerraformedAmount((*source)) + csPlanet.MineralConcentration = ExtendMineralConcentration((*source)) + csPlanet.MineYears = ExtendMineYears((*source)) + csPlanet.Cargo = c.dbPlanetToCsCargo((*source)) + csPlanet.Mines = (*source).Mines + csPlanet.Factories = (*source).Factories + csPlanet.Defenses = (*source).Defenses + csPlanet.Homeworld = (*source).Homeworld + csPlanet.Scanner = (*source).Scanner + csPlanet.Spec = PlanetSpecToGamePlanetSpec((*source).Spec) + csPlanet.RandomArtifact = (*source).RandomArtifact pCsPlanet = &csPlanet } return pCsPlanet } func (c *GameConverter) ConvertPlayer(source Player) cs.Player { var csPlayer cs.Player - csPlayer.GameDBObject = ExtendPlayerGameDBObject(source) - csPlayer.PlayerOrders = ExtendPlayerPlayerOrders(source) - csPlayer.PlayerIntels = ExtendPlayerPlayerIntels(source) - csPlayer.PlayerPlans = ExtendPlayerPlayerPlans(source) + csPlayer.GameDBObject = c.dbPlayerToCsGameDBObject(source) + csPlayer.PlayerOrders = c.dbPlayerToCsPlayerOrders(source) + csPlayer.PlayerIntels = c.dbPlayerToCsPlayerIntels(source) + csPlayer.PlayerPlans = c.dbPlayerToCsPlayerPlans(source) csPlayer.UserID = source.UserID csPlayer.Name = source.Name csPlayer.Num = source.Num @@ -198,7 +571,7 @@ func (c *GameConverter) ConvertPlayer(source Player) cs.Player { csPlayer.DefaultHullSet = source.DefaultHullSet csPlayer.Race = PlayerRaceToGameRace(source.Race) csPlayer.TechLevels = ExtendTechLevels(source) - csPlayer.TechLevelsSpent = ExtendTechLevelsSpent(source) + csPlayer.TechLevelsSpent = ExtendTechLevels(source) csPlayer.ResearchSpentLastYear = source.ResearchSpentLastYear csPlayer.Relations = PlayerRelationshipsToGamePlayerRelationships(source.Relations) csPlayer.Messages = PlayerMessagesToGamePlayerMessages(source.Messages) @@ -221,7 +594,7 @@ func (c *GameConverter) ConvertPlayers(source []Player) []cs.Player { } func (c *GameConverter) ConvertRace(source Race) cs.Race { var csRace cs.Race - csRace.DBObject = ExtendRaceDBObject(source) + csRace.DBObject = c.dbRaceToCsDBObject(source) csRace.UserID = source.UserID csRace.Name = source.Name csRace.PluralName = source.PluralName @@ -260,7 +633,9 @@ func (c *GameConverter) ConvertRaces(source []Race) []cs.Race { func (c *GameConverter) ConvertSalvage(source *Salvage) *cs.Salvage { var pCsSalvage *cs.Salvage if source != nil { - csSalvage := c.dbSalvageToCsSalvage((*source)) + var csSalvage cs.Salvage + csSalvage.MapObject = ExtendSalvageMapObject((*source)) + csSalvage.Cargo = c.salvageCargo((*source)) pCsSalvage = &csSalvage } return pCsSalvage @@ -268,14 +643,26 @@ func (c *GameConverter) ConvertSalvage(source *Salvage) *cs.Salvage { func (c *GameConverter) ConvertShipDesign(source *ShipDesign) *cs.ShipDesign { var pCsShipDesign *cs.ShipDesign if source != nil { - csShipDesign := c.dbShipDesignToCsShipDesign((*source)) + var csShipDesign cs.ShipDesign + csShipDesign.GameDBObject = c.dbShipDesignToCsGameDBObject((*source)) + csShipDesign.Num = (*source).Num + csShipDesign.PlayerNum = (*source).PlayerNum + csShipDesign.OriginalPlayerNum = (*source).OriginalPlayerNum + csShipDesign.Name = (*source).Name + csShipDesign.Version = (*source).Version + csShipDesign.Hull = (*source).Hull + csShipDesign.HullSetNumber = (*source).HullSetNumber + csShipDesign.CannotDelete = (*source).CannotDelete + csShipDesign.Slots = ShipDesignSlotsToGameShipDesignSlots((*source).Slots) + csShipDesign.Purpose = cs.ShipDesignPurpose((*source).Purpose) + csShipDesign.Spec = ShipDesignSpecToGameShipDesignSpec((*source).Spec) pCsShipDesign = &csShipDesign } return pCsShipDesign } func (c *GameConverter) ConvertUser(source User) cs.User { var csUser cs.User - csUser.DBObject = ExtendUserDBObject(source) + csUser.DBObject = c.dbUserToCsDBObject(source) csUser.Username = source.Username csUser.Password = source.Password csUser.Email = source.Email @@ -284,12 +671,7 @@ func (c *GameConverter) ConvertUser(source User) cs.User { csUser.Verified = source.Verified csUser.GameID = source.GameID csUser.PlayerNum = source.PlayerNum - var pTimeTime *time.Time - if source.LastLogin != nil { - timeTime := TimeToTime((*source.LastLogin)) - pTimeTime = &timeTime - } - csUser.LastLogin = pTimeTime + csUser.LastLogin = c.pTimeTimeToPTimeTime(source.LastLogin) var pString *string if source.DiscordID != nil { xstring := *source.DiscordID @@ -317,484 +699,168 @@ func (c *GameConverter) ConvertUsers(source []User) []cs.User { func (c *GameConverter) ConvertWormhole(source *Wormhole) *cs.Wormhole { var pCsWormhole *cs.Wormhole if source != nil { - csWormhole := c.dbWormholeToCsWormhole((*source)) + var csWormhole cs.Wormhole + csWormhole.MapObject = c.wormHoleMapObject((*source)) + csWormhole.DestinationNum = (*source).DestinationNum + csWormhole.Stability = cs.WormholeStability((*source).Stability) + csWormhole.YearsAtStability = (*source).YearsAtStability + csWormhole.Spec = WormholeSpecToGameWormholeSpec((*source).Spec) pCsWormhole = &csWormhole } return pCsWormhole } -func (c *GameConverter) csFleetToDbFleet(source cs.Fleet) Fleet { - var dbFleet Fleet - dbFleet.ID = source.MapObject.GameDBObject.ID - dbFleet.GameID = source.MapObject.GameDBObject.GameID - dbFleet.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbFleet.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbFleet.X = source.MapObject.Position.X - dbFleet.Y = source.MapObject.Position.Y - dbFleet.Name = source.MapObject.Name - dbFleet.Num = source.MapObject.Num - dbFleet.PlayerNum = source.MapObject.PlayerNum - dbFleet.Tags = GameTagsToTags(source.MapObject.Tags) - dbFleet.Tokens = GameShipTokensToShipTokens(source.Tokens) - dbFleet.Waypoints = GameWaypointsToWaypoints(source.FleetOrders.Waypoints) - dbFleet.RepeatOrders = source.FleetOrders.RepeatOrders - dbFleet.PlanetNum = source.PlanetNum - dbFleet.BaseName = source.BaseName - dbFleet.Ironium = source.Cargo.Ironium - dbFleet.Boranium = source.Cargo.Boranium - dbFleet.Germanium = source.Cargo.Germanium - dbFleet.Colonists = source.Cargo.Colonists - dbFleet.Fuel = source.Fuel - dbFleet.Age = source.Age - dbFleet.BattlePlanNum = source.FleetOrders.BattlePlanNum - dbFleet.HeadingX = source.Heading.X - dbFleet.HeadingY = source.Heading.Y - dbFleet.WarpSpeed = source.WarpSpeed - var pFloat64 *float64 - if source.PreviousPosition != nil { - pFloat64 = &source.PreviousPosition.X - } - var pFloat642 *float64 - if pFloat64 != nil { - xfloat64 := *pFloat64 - pFloat642 = &xfloat64 - } - dbFleet.PreviousPositionX = pFloat642 - var pFloat643 *float64 - if source.PreviousPosition != nil { - pFloat643 = &source.PreviousPosition.Y - } - var pFloat644 *float64 - if pFloat643 != nil { - xfloat642 := *pFloat643 - pFloat644 = &xfloat642 - } - dbFleet.PreviousPositionY = pFloat644 - dbFleet.OrbitingPlanetNum = source.OrbitingPlanetNum - dbFleet.Starbase = source.Starbase - dbFleet.Purpose = cs.FleetPurpose(source.FleetOrders.Purpose) - dbFleet.Spec = GameFleetSpecToFleetSpec(source.Spec) - return dbFleet -} -func (c *GameConverter) csGameToDbGame(source cs.Game) Game { - var dbGame Game - dbGame.ID = source.DBObject.ID - dbGame.CreatedAt = TimeToTime(source.DBObject.CreatedAt) - dbGame.UpdatedAt = TimeToTime(source.DBObject.UpdatedAt) - dbGame.HostID = source.HostID - dbGame.Name = source.Name - dbGame.State = cs.GameState(source.State) - dbGame.Public = source.Public - dbGame.Hash = source.Hash - dbGame.Size = cs.Size(source.Size) - dbGame.Density = cs.Density(source.Density) - dbGame.PlayerPositions = cs.PlayerPositions(source.PlayerPositions) - dbGame.RandomEvents = source.RandomEvents - dbGame.ComputerPlayersFormAlliances = source.ComputerPlayersFormAlliances - dbGame.PublicPlayerScores = source.PublicPlayerScores - dbGame.StartMode = cs.GameStartMode(source.StartMode) - dbGame.QuickStartTurns = source.QuickStartTurns - dbGame.OpenPlayerSlots = source.OpenPlayerSlots - dbGame.NumPlayers = source.NumPlayers - dbGame.VictoryConditionsConditions = cs.Bitmask(source.VictoryConditions.Conditions) - dbGame.VictoryConditionsNumCriteriaRequired = source.VictoryConditions.NumCriteriaRequired - dbGame.VictoryConditionsYearsPassed = source.VictoryConditions.YearsPassed - dbGame.VictoryConditionsOwnPlanets = source.VictoryConditions.OwnPlanets - dbGame.VictoryConditionsAttainTechLevel = source.VictoryConditions.AttainTechLevel - dbGame.VictoryConditionsAttainTechLevelNumFields = source.VictoryConditions.AttainTechLevelNumFields - dbGame.VictoryConditionsExceedsScore = source.VictoryConditions.ExceedsScore - dbGame.VictoryConditionsExceedsSecondPlaceScore = source.VictoryConditions.ExceedsSecondPlaceScore - dbGame.VictoryConditionsProductionCapacity = source.VictoryConditions.ProductionCapacity - dbGame.VictoryConditionsOwnCapitalShips = source.VictoryConditions.OwnCapitalShips - dbGame.VictoryConditionsHighestScoreAfterYears = source.VictoryConditions.HighestScoreAfterYears - dbGame.Seed = source.Seed - dbGame.Rules = GameRulesToRules(source.Rules) - dbGame.AreaX = source.Area.X - dbGame.AreaY = source.Area.Y - dbGame.Year = source.Year - dbGame.VictorDeclared = source.VictorDeclared - return dbGame -} -func (c *GameConverter) csMineFieldToDbMineField(source cs.MineField) MineField { - var dbMineField MineField - dbMineField.ID = source.MapObject.GameDBObject.ID - dbMineField.GameID = source.MapObject.GameDBObject.GameID - dbMineField.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbMineField.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbMineField.X = source.MapObject.Position.X - dbMineField.Y = source.MapObject.Position.Y - dbMineField.Name = source.MapObject.Name - dbMineField.Num = source.MapObject.Num - dbMineField.PlayerNum = source.MapObject.PlayerNum - dbMineField.Tags = GameTagsToTags(source.MapObject.Tags) - dbMineField.MineFieldType = cs.MineFieldType(source.MineFieldType) - dbMineField.NumMines = source.NumMines - dbMineField.Detonate = source.MineFieldOrders.Detonate - dbMineField.Spec = GameMineFieldSpecToMineFieldSpec(source.Spec) - return dbMineField -} -func (c *GameConverter) csMineralPacketToDbMineralPacket(source cs.MineralPacket) MineralPacket { - var dbMineralPacket MineralPacket - dbMineralPacket.ID = source.MapObject.GameDBObject.ID - dbMineralPacket.GameID = source.MapObject.GameDBObject.GameID - dbMineralPacket.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbMineralPacket.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbMineralPacket.X = source.MapObject.Position.X - dbMineralPacket.Y = source.MapObject.Position.Y - dbMineralPacket.Name = source.MapObject.Name - dbMineralPacket.Num = source.MapObject.Num - dbMineralPacket.PlayerNum = source.MapObject.PlayerNum - dbMineralPacket.Tags = GameTagsToTags(source.MapObject.Tags) - dbMineralPacket.TargetPlanetNum = source.TargetPlanetNum - dbMineralPacket.Ironium = source.Cargo.Ironium - dbMineralPacket.Boranium = source.Cargo.Boranium - dbMineralPacket.Germanium = source.Cargo.Germanium - dbMineralPacket.SafeWarpSpeed = source.SafeWarpSpeed - dbMineralPacket.WarpSpeed = source.WarpSpeed - dbMineralPacket.ScanRange = source.ScanRange - dbMineralPacket.ScanRangePen = source.ScanRangePen - dbMineralPacket.HeadingX = source.Heading.X - dbMineralPacket.HeadingY = source.Heading.Y - return dbMineralPacket -} -func (c *GameConverter) csMysteryTraderToDbMysteryTrader(source cs.MysteryTrader) MysteryTrader { - var dbMysteryTrader MysteryTrader - dbMysteryTrader.ID = source.MapObject.GameDBObject.ID - dbMysteryTrader.GameID = source.MapObject.GameDBObject.GameID - dbMysteryTrader.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbMysteryTrader.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbMysteryTrader.X = source.MapObject.Position.X - dbMysteryTrader.Y = source.MapObject.Position.Y - dbMysteryTrader.Name = source.MapObject.Name - dbMysteryTrader.Num = source.MapObject.Num - dbMysteryTrader.Tags = GameTagsToTags(source.MapObject.Tags) - dbMysteryTrader.HeadingX = source.Heading.X - dbMysteryTrader.HeadingY = source.Heading.Y - dbMysteryTrader.WarpSpeed = source.WarpSpeed - dbMysteryTrader.Spec = GameMysteryTraderSpecToMysteryTraderSpec(source.Spec) - return dbMysteryTrader -} -func (c *GameConverter) csPlanetToDbPlanet(source cs.Planet) Planet { - var dbPlanet Planet - dbPlanet.ID = source.MapObject.GameDBObject.ID - dbPlanet.GameID = source.MapObject.GameDBObject.GameID - dbPlanet.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbPlanet.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbPlanet.X = source.MapObject.Position.X - dbPlanet.Y = source.MapObject.Position.Y - dbPlanet.Name = source.MapObject.Name - dbPlanet.Num = source.MapObject.Num - dbPlanet.PlayerNum = source.MapObject.PlayerNum - dbPlanet.Tags = GameTagsToTags(source.MapObject.Tags) - dbPlanet.Grav = source.Hab.Grav - dbPlanet.Temp = source.Hab.Temp - dbPlanet.Rad = source.Hab.Rad - dbPlanet.BaseGrav = source.BaseHab.Grav - dbPlanet.BaseTemp = source.BaseHab.Temp - dbPlanet.BaseRad = source.BaseHab.Rad - dbPlanet.TerraformedAmountGrav = source.TerraformedAmount.Grav - dbPlanet.TerraformedAmountTemp = source.TerraformedAmount.Temp - dbPlanet.TerraformedAmountRad = source.TerraformedAmount.Rad - dbPlanet.MineralConcIronium = source.MineralConcentration.Ironium - dbPlanet.MineralConcBoranium = source.MineralConcentration.Boranium - dbPlanet.MineralConcGermanium = source.MineralConcentration.Germanium - dbPlanet.MineYearsIronium = source.MineYears.Ironium - dbPlanet.MineYearsBoranium = source.MineYears.Boranium - dbPlanet.MineYearsGermanium = source.MineYears.Germanium - dbPlanet.Ironium = source.Cargo.Ironium - dbPlanet.Boranium = source.Cargo.Boranium - dbPlanet.Germanium = source.Cargo.Germanium - dbPlanet.Colonists = source.Cargo.Colonists - dbPlanet.Mines = source.Mines - dbPlanet.Factories = source.Factories - dbPlanet.Defenses = source.Defenses - dbPlanet.Homeworld = source.Homeworld - dbPlanet.ContributesOnlyLeftoverToResearch = source.PlanetOrders.ContributesOnlyLeftoverToResearch - dbPlanet.Scanner = source.Scanner - dbPlanet.RouteTargetType = cs.MapObjectType(source.PlanetOrders.RouteTargetType) - dbPlanet.RouteTargetNum = source.PlanetOrders.RouteTargetNum - dbPlanet.RouteTargetPlayerNum = source.PlanetOrders.RouteTargetPlayerNum - dbPlanet.PacketTargetNum = source.PlanetOrders.PacketTargetNum - dbPlanet.PacketSpeed = source.PlanetOrders.PacketSpeed - dbPlanet.RandomArtifact = source.RandomArtifact - dbPlanet.ProductionQueue = GameProductionQueueItemsToProductionQueueItems(source.PlanetOrders.ProductionQueue) - dbPlanet.Spec = GamePlanetSpecToPlanetSpec(source.Spec) - return dbPlanet -} -func (c *GameConverter) csPlayerToDbPlayer(source cs.Player) Player { - var dbPlayer Player - dbPlayer.ID = source.GameDBObject.ID - dbPlayer.CreatedAt = TimeToTime(source.GameDBObject.CreatedAt) - dbPlayer.UpdatedAt = TimeToTime(source.GameDBObject.UpdatedAt) - dbPlayer.GameID = source.GameDBObject.GameID - dbPlayer.UserID = source.UserID - dbPlayer.Name = source.Name - dbPlayer.Num = source.Num - dbPlayer.Ready = source.Ready - dbPlayer.AIControlled = source.AIControlled - dbPlayer.Guest = source.Guest - dbPlayer.SubmittedTurn = source.SubmittedTurn - dbPlayer.Color = source.Color - dbPlayer.DefaultHullSet = source.DefaultHullSet - dbPlayer.TechLevelsEnergy = source.TechLevels.Energy - dbPlayer.TechLevelsWeapons = source.TechLevels.Weapons - dbPlayer.TechLevelsPropulsion = source.TechLevels.Propulsion - dbPlayer.TechLevelsConstruction = source.TechLevels.Construction - dbPlayer.TechLevelsElectronics = source.TechLevels.Electronics - dbPlayer.TechLevelsBiotechnology = source.TechLevels.Biotechnology - dbPlayer.TechLevelsSpentEnergy = source.TechLevelsSpent.Energy - dbPlayer.TechLevelsSpentWeapons = source.TechLevelsSpent.Weapons - dbPlayer.TechLevelsSpentPropulsion = source.TechLevelsSpent.Propulsion - dbPlayer.TechLevelsSpentConstruction = source.TechLevelsSpent.Construction - dbPlayer.TechLevelsSpentElectronics = source.TechLevelsSpent.Electronics - dbPlayer.TechLevelsSpentBiotechnology = source.TechLevelsSpent.Biotechnology - dbPlayer.ResearchAmount = source.PlayerOrders.ResearchAmount - dbPlayer.ResearchSpentLastYear = source.ResearchSpentLastYear - dbPlayer.NextResearchField = cs.NextResearchField(source.PlayerOrders.NextResearchField) - dbPlayer.Researching = cs.TechField(source.PlayerOrders.Researching) - dbPlayer.BattlePlans = GameBattlePlansToBattlePlans(source.PlayerPlans.BattlePlans) - dbPlayer.ProductionPlans = GameProductionPlansToProductionPlans(source.PlayerPlans.ProductionPlans) - dbPlayer.TransportPlans = GameTransportPlansToTransportPlans(source.PlayerPlans.TransportPlans) - dbPlayer.Relations = GamePlayerRelationshipsToPlayerRelationships(source.Relations) - dbPlayer.Messages = GamePlayerMessagesToPlayerMessages(source.Messages) - dbPlayer.BattleRecords = GameBattleRecordsToBattleRecords(source.PlayerIntels.BattleRecords) - dbPlayer.PlayerIntels = GamePlayerIntelsToPlayerIntels(source.PlayerIntels.PlayerIntels) - dbPlayer.ScoreIntels = GameScoreIntelsToScoreIntels(source.PlayerIntels.ScoreIntels) - dbPlayer.PlanetIntels = GamePlanetIntelsToPlanetIntels(source.PlayerIntels.PlanetIntels) - dbPlayer.FleetIntels = GameFleetIntelsToFleetIntels(source.PlayerIntels.FleetIntels) - dbPlayer.StarbaseIntels = GameFleetIntelsToFleetIntels(source.PlayerIntels.StarbaseIntels) - dbPlayer.ShipDesignIntels = GameShipDesignIntelsToShipDesignIntels(source.PlayerIntels.ShipDesignIntels) - dbPlayer.MineralPacketIntels = GameMineralPacketIntelsToMineralPacketIntels(source.PlayerIntels.MineralPacketIntels) - dbPlayer.MineFieldIntels = GameMineFieldIntelsToMineFieldIntels(source.PlayerIntels.MineFieldIntels) - dbPlayer.WormholeIntels = GameWormholeIntelsToWormholeIntels(source.PlayerIntels.WormholeIntels) - dbPlayer.MysteryTraderIntels = GameMysteryTraderIntelsToMysteryTraderIntels(source.PlayerIntels.MysteryTraderIntels) - dbPlayer.SalvageIntels = GameSalvageIntelsToSalvageIntels(source.PlayerIntels.SalvageIntels) - dbPlayer.Race = GameRaceToPlayerRace(source.Race) - dbPlayer.Stats = GamePlayerStatsToPlayerStats(source.Stats) - dbPlayer.ScoreHistory = GamePlayerScoresToPlayerScores(source.ScoreHistory) - dbPlayer.AchievedVictoryConditions = cs.Bitmask(source.AchievedVictoryConditions) - dbPlayer.Victor = source.Victor - dbPlayer.Spec = GamePlayerSpecToPlayerSpec(source.Spec) - return dbPlayer -} -func (c *GameConverter) csRaceToDbRace(source cs.Race) Race { - var dbRace Race - dbRace.ID = source.DBObject.ID - dbRace.CreatedAt = TimeToTime(source.DBObject.CreatedAt) - dbRace.UpdatedAt = TimeToTime(source.DBObject.UpdatedAt) - dbRace.UserID = source.UserID - dbRace.Name = source.Name - dbRace.PluralName = source.PluralName - dbRace.SpendLeftoverPointsOn = cs.SpendLeftoverPointsOn(source.SpendLeftoverPointsOn) - dbRace.PRT = cs.PRT(source.PRT) - dbRace.LRTs = cs.Bitmask(source.LRTs) - dbRace.HabLowGrav = source.HabLow.Grav - dbRace.HabLowTemp = source.HabLow.Temp - dbRace.HabLowRad = source.HabLow.Rad - dbRace.HabHighGrav = source.HabHigh.Grav - dbRace.HabHighTemp = source.HabHigh.Temp - dbRace.HabHighRad = source.HabHigh.Rad - dbRace.GrowthRate = source.GrowthRate - dbRace.PopEfficiency = source.PopEfficiency - dbRace.FactoryOutput = source.FactoryOutput - dbRace.FactoryCost = source.FactoryCost - dbRace.NumFactories = source.NumFactories - dbRace.FactoriesCostLess = source.FactoriesCostLess - dbRace.ImmuneGrav = source.ImmuneGrav - dbRace.ImmuneTemp = source.ImmuneTemp - dbRace.ImmuneRad = source.ImmuneRad - dbRace.MineOutput = source.MineOutput - dbRace.MineCost = source.MineCost - dbRace.NumMines = source.NumMines - dbRace.ResearchCostEnergy = cs.ResearchCostLevel(source.ResearchCost.Energy) - dbRace.ResearchCostWeapons = cs.ResearchCostLevel(source.ResearchCost.Weapons) - dbRace.ResearchCostPropulsion = cs.ResearchCostLevel(source.ResearchCost.Propulsion) - dbRace.ResearchCostConstruction = cs.ResearchCostLevel(source.ResearchCost.Construction) - dbRace.ResearchCostElectronics = cs.ResearchCostLevel(source.ResearchCost.Electronics) - dbRace.ResearchCostBiotechnology = cs.ResearchCostLevel(source.ResearchCost.Biotechnology) - dbRace.TechsStartHigh = source.TechsStartHigh - dbRace.Spec = GameRaceSpecToRaceSpec(source.Spec) - return dbRace -} -func (c *GameConverter) csSalvageToDbSalvage(source cs.Salvage) Salvage { - var dbSalvage Salvage - dbSalvage.ID = source.MapObject.GameDBObject.ID - dbSalvage.GameID = source.MapObject.GameDBObject.GameID - dbSalvage.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbSalvage.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbSalvage.X = source.MapObject.Position.X - dbSalvage.Y = source.MapObject.Position.Y - dbSalvage.Name = source.MapObject.Name - dbSalvage.Num = source.MapObject.Num - dbSalvage.PlayerNum = source.MapObject.PlayerNum - dbSalvage.Tags = GameTagsToTags(source.MapObject.Tags) - dbSalvage.Ironium = source.Cargo.Ironium - dbSalvage.Boranium = source.Cargo.Boranium - dbSalvage.Germanium = source.Cargo.Germanium - return dbSalvage -} -func (c *GameConverter) csShipDesignToDbShipDesign(source cs.ShipDesign) ShipDesign { - var dbShipDesign ShipDesign - dbShipDesign.ID = source.GameDBObject.ID - dbShipDesign.GameID = source.GameDBObject.GameID - dbShipDesign.UpdatedAt = TimeToNullTime(source.GameDBObject.UpdatedAt) - dbShipDesign.CreatedAt = TimeToNullTime(source.GameDBObject.CreatedAt) - dbShipDesign.Num = source.Num - dbShipDesign.PlayerNum = source.PlayerNum - dbShipDesign.OriginalPlayerNum = source.OriginalPlayerNum - dbShipDesign.Name = source.Name - dbShipDesign.Version = source.Version - dbShipDesign.Hull = source.Hull - dbShipDesign.HullSetNumber = source.HullSetNumber - dbShipDesign.CannotDelete = source.CannotDelete - dbShipDesign.Slots = GameShipDesignSlotsToShipDesignSlots(source.Slots) - dbShipDesign.Purpose = cs.ShipDesignPurpose(source.Purpose) - dbShipDesign.Spec = GameShipDesignSpecToShipDesignSpec(source.Spec) - return dbShipDesign -} -func (c *GameConverter) csUserToDbUser(source cs.User) User { - var dbUser User - dbUser.ID = source.DBObject.ID - dbUser.CreatedAt = TimeToTime(source.DBObject.CreatedAt) - dbUser.UpdatedAt = TimeToTime(source.DBObject.UpdatedAt) - dbUser.GameID = source.GameID - dbUser.PlayerNum = source.PlayerNum - dbUser.Username = source.Username - dbUser.Password = source.Password - dbUser.Email = source.Email - dbUser.Role = cs.UserRole(source.Role) - dbUser.Banned = source.Banned - dbUser.Verified = source.Verified +func (c *GameConverter) csResearchCostLevelToCsResearchCostLevel(source cs.ResearchCostLevel) cs.ResearchCostLevel { + return cs.ResearchCostLevel(source) +} +func (c *GameConverter) dbFleetToCsCargo(source Fleet) cs.Cargo { + var csCargo cs.Cargo + csCargo.Ironium = source.Ironium + csCargo.Boranium = source.Boranium + csCargo.Germanium = source.Germanium + csCargo.Colonists = source.Colonists + return csCargo +} +func (c *GameConverter) dbGameToCsDBObject(source Game) cs.DBObject { + var csDBObject cs.DBObject + csDBObject.ID = source.ID + csDBObject.CreatedAt = TimeToTime(source.CreatedAt) + csDBObject.UpdatedAt = TimeToTime(source.UpdatedAt) + return csDBObject +} +func (c *GameConverter) dbMineFieldToCsMineFieldOrders(source MineField) cs.MineFieldOrders { + var csMineFieldOrders cs.MineFieldOrders + csMineFieldOrders.Detonate = source.Detonate + return csMineFieldOrders +} +func (c *GameConverter) dbPlanetToCsCargo(source Planet) cs.Cargo { + var csCargo cs.Cargo + csCargo.Ironium = source.Ironium + csCargo.Boranium = source.Boranium + csCargo.Germanium = source.Germanium + csCargo.Colonists = source.Colonists + return csCargo +} +func (c *GameConverter) dbPlanetToCsHab(source Planet) cs.Hab { + var csHab cs.Hab + csHab.Grav = source.Grav + csHab.Temp = source.Temp + csHab.Rad = source.Rad + return csHab +} +func (c *GameConverter) dbPlanetToCsPlanetOrders(source Planet) cs.PlanetOrders { + var csPlanetOrders cs.PlanetOrders + csPlanetOrders.ContributesOnlyLeftoverToResearch = source.ContributesOnlyLeftoverToResearch + csPlanetOrders.ProductionQueue = ProductionQueueItemsToGameProductionQueueItems(source.ProductionQueue) + csPlanetOrders.RouteTargetType = cs.MapObjectType(source.RouteTargetType) + csPlanetOrders.RouteTargetNum = source.RouteTargetNum + csPlanetOrders.RouteTargetPlayerNum = source.RouteTargetPlayerNum + csPlanetOrders.PacketTargetNum = source.PacketTargetNum + csPlanetOrders.PacketSpeed = source.PacketSpeed + return csPlanetOrders +} +func (c *GameConverter) dbPlayerToCsGameDBObject(source Player) cs.GameDBObject { + var csGameDBObject cs.GameDBObject + csGameDBObject.ID = source.ID + csGameDBObject.GameID = source.GameID + csGameDBObject.CreatedAt = TimeToTime(source.CreatedAt) + csGameDBObject.UpdatedAt = TimeToTime(source.UpdatedAt) + return csGameDBObject +} +func (c *GameConverter) dbPlayerToCsPlayerIntels(source Player) cs.PlayerIntels { + var csPlayerIntels cs.PlayerIntels + csPlayerIntels.BattleRecords = BattleRecordsToGameBattleRecords(source.BattleRecords) + csPlayerIntels.PlayerIntels = PlayerIntelsToGamePlayerIntels(source.PlayerIntels) + csPlayerIntels.ScoreIntels = ScoreIntelsToGameScoreIntels(source.ScoreIntels) + csPlayerIntels.PlanetIntels = PlanetIntelsToGamePlanetIntels(source.PlanetIntels) + csPlayerIntels.FleetIntels = FleetIntelsToGameFleetIntels(source.FleetIntels) + csPlayerIntels.StarbaseIntels = FleetIntelsToGameFleetIntels(source.StarbaseIntels) + csPlayerIntels.ShipDesignIntels = ShipDesignIntelsToGameShipDesignIntels(source.ShipDesignIntels) + csPlayerIntels.MineralPacketIntels = MineralPacketIntelsToGameMineralPacketIntels(source.MineralPacketIntels) + csPlayerIntels.MineFieldIntels = MineFieldIntelsToGameMineFieldIntels(source.MineFieldIntels) + csPlayerIntels.WormholeIntels = WormholeIntelsToGameWormholeIntels(source.WormholeIntels) + csPlayerIntels.MysteryTraderIntels = MysteryTraderIntelsToGameMysteryTraderIntels(source.MysteryTraderIntels) + csPlayerIntels.SalvageIntels = SalvageIntelsToGameSalvageIntels(source.SalvageIntels) + return csPlayerIntels +} +func (c *GameConverter) dbPlayerToCsPlayerOrders(source Player) cs.PlayerOrders { + var csPlayerOrders cs.PlayerOrders + csPlayerOrders.Researching = cs.TechField(source.Researching) + csPlayerOrders.NextResearchField = cs.NextResearchField(source.NextResearchField) + csPlayerOrders.ResearchAmount = source.ResearchAmount + return csPlayerOrders +} +func (c *GameConverter) dbPlayerToCsPlayerPlans(source Player) cs.PlayerPlans { + var csPlayerPlans cs.PlayerPlans + csPlayerPlans.ProductionPlans = ProductionPlansToGameProductionPlans(source.ProductionPlans) + csPlayerPlans.BattlePlans = BattlePlansToGameBattlePlans(source.BattlePlans) + csPlayerPlans.TransportPlans = TransportPlansToGameTransportPlans(source.TransportPlans) + return csPlayerPlans +} +func (c *GameConverter) dbRaceToCsDBObject(source Race) cs.DBObject { + var csDBObject cs.DBObject + csDBObject.ID = source.ID + csDBObject.CreatedAt = TimeToTime(source.CreatedAt) + csDBObject.UpdatedAt = TimeToTime(source.UpdatedAt) + return csDBObject +} +func (c *GameConverter) dbShipDesignToCsGameDBObject(source ShipDesign) cs.GameDBObject { + var csGameDBObject cs.GameDBObject + csGameDBObject.ID = source.ID + csGameDBObject.GameID = source.GameID + csGameDBObject.CreatedAt = NullTimeToTime(source.CreatedAt) + csGameDBObject.UpdatedAt = NullTimeToTime(source.UpdatedAt) + return csGameDBObject +} +func (c *GameConverter) dbUserToCsDBObject(source User) cs.DBObject { + var csDBObject cs.DBObject + csDBObject.ID = source.ID + csDBObject.CreatedAt = TimeToTime(source.CreatedAt) + csDBObject.UpdatedAt = TimeToTime(source.UpdatedAt) + return csDBObject +} +func (c *GameConverter) dbWormholeToCsGameDBObject(source Wormhole) cs.GameDBObject { + var csGameDBObject cs.GameDBObject + csGameDBObject.ID = source.ID + csGameDBObject.GameID = source.GameID + csGameDBObject.CreatedAt = TimeToTime(source.CreatedAt) + csGameDBObject.UpdatedAt = TimeToTime(source.UpdatedAt) + return csGameDBObject +} +func (c *GameConverter) dbWormholeToCsVector(source Wormhole) cs.Vector { + var csVector cs.Vector + csVector.X = source.X + csVector.Y = source.Y + return csVector +} +func (c *GameConverter) mineralPaketCargo(source MineralPacket) cs.Cargo { + var csCargo cs.Cargo + csCargo.Ironium = source.Ironium + csCargo.Boranium = source.Boranium + csCargo.Germanium = source.Germanium + return csCargo +} +func (c *GameConverter) pTimeTimeToPTimeTime(source *time.Time) *time.Time { var pTimeTime *time.Time - if source.LastLogin != nil { - timeTime := TimeToTime((*source.LastLogin)) + if source != nil { + timeTime := TimeToTime((*source)) pTimeTime = &timeTime } - dbUser.LastLogin = pTimeTime - var pString *string - if source.DiscordID != nil { - xstring := *source.DiscordID - pString = &xstring - } - dbUser.DiscordID = pString - var pString2 *string - if source.DiscordAvatar != nil { - xstring2 := *source.DiscordAvatar - pString2 = &xstring2 - } - dbUser.DiscordAvatar = pString2 - return dbUser -} -func (c *GameConverter) csWormholeToDbWormhole(source cs.Wormhole) Wormhole { - var dbWormhole Wormhole - dbWormhole.ID = source.MapObject.GameDBObject.ID - dbWormhole.GameID = source.MapObject.GameDBObject.GameID - dbWormhole.CreatedAt = TimeToTime(source.MapObject.GameDBObject.CreatedAt) - dbWormhole.UpdatedAt = TimeToTime(source.MapObject.GameDBObject.UpdatedAt) - dbWormhole.X = source.MapObject.Position.X - dbWormhole.Y = source.MapObject.Position.Y - dbWormhole.Name = source.MapObject.Name - dbWormhole.Num = source.MapObject.Num - dbWormhole.Tags = GameTagsToTags(source.MapObject.Tags) - dbWormhole.DestinationNum = source.DestinationNum - dbWormhole.Stability = cs.WormholeStability(source.Stability) - dbWormhole.YearsAtStability = source.YearsAtStability - dbWormhole.Spec = GameWormholeSpecToWormholeSpec(source.Spec) - return dbWormhole -} -func (c *GameConverter) dbFleetToCsFleet(source Fleet) cs.Fleet { - var csFleet cs.Fleet - csFleet.MapObject = ExtendFleetMapObject(source) - csFleet.FleetOrders = ExtendFleetFleetOrders(source) - csFleet.PlanetNum = source.PlanetNum - csFleet.BaseName = source.BaseName - csFleet.Cargo = ExtendFleetCargo(source) - csFleet.Fuel = source.Fuel - csFleet.Age = source.Age - csFleet.Tokens = ShipTokensToGameShipTokens(source.Tokens) - csFleet.Heading = ExtendFleetHeading(source) - csFleet.WarpSpeed = source.WarpSpeed - csFleet.PreviousPosition = ExtendFleetPreviousPosition(source) - csFleet.OrbitingPlanetNum = source.OrbitingPlanetNum - csFleet.Starbase = source.Starbase - csFleet.Spec = FleetSpecToGameFleetSpec(source.Spec) - return csFleet -} -func (c *GameConverter) dbMineFieldToCsMineField(source MineField) cs.MineField { - var csMineField cs.MineField - csMineField.MapObject = ExtendMineFieldMapObject(source) - csMineField.MineFieldOrders = ExtendMineFieldMineFieldOrders(source) - csMineField.MineFieldType = cs.MineFieldType(source.MineFieldType) - csMineField.NumMines = source.NumMines - csMineField.Spec = MineFieldSpecToGameMineFieldSpec(source.Spec) - return csMineField -} -func (c *GameConverter) dbMineralPacketToCsMineralPacket(source MineralPacket) cs.MineralPacket { - var csMineralPacket cs.MineralPacket - csMineralPacket.MapObject = ExtendMineralPacketMapObject(source) - csMineralPacket.TargetPlanetNum = source.TargetPlanetNum - csMineralPacket.Cargo = ExtendMineralPacketCargo(source) - csMineralPacket.WarpSpeed = source.WarpSpeed - csMineralPacket.SafeWarpSpeed = source.SafeWarpSpeed - csMineralPacket.Heading = ExtendMineralPacketHeading(source) - csMineralPacket.ScanRange = source.ScanRange - csMineralPacket.ScanRangePen = source.ScanRangePen - return csMineralPacket -} -func (c *GameConverter) dbMysteryTraderToCsMysteryTrader(source MysteryTrader) cs.MysteryTrader { - var csMysteryTrader cs.MysteryTrader - csMysteryTrader.MapObject = ExtendMysteryTraderMapObject(source) - csMysteryTrader.Heading = ExtendMysteryTraderHeading(source) - csMysteryTrader.WarpSpeed = source.WarpSpeed - csMysteryTrader.Spec = MysteryTraderSpecToGameMysteryTraderSpec(source.Spec) - return csMysteryTrader -} -func (c *GameConverter) dbPlanetToCsPlanet(source Planet) cs.Planet { - var csPlanet cs.Planet - csPlanet.MapObject = ExtendPlanetMapObject(source) - csPlanet.PlanetOrders = ExtendPlanetPlanetOrders(source) - csPlanet.Hab = ExtendHab(source) - csPlanet.BaseHab = ExtendBaseHab(source) - csPlanet.TerraformedAmount = ExtendTerraformedAmount(source) - csPlanet.MineralConcentration = ExtendMineralConcentration(source) - csPlanet.MineYears = ExtendMineYears(source) - csPlanet.Cargo = ExtendPlanetCargo(source) - csPlanet.Mines = source.Mines - csPlanet.Factories = source.Factories - csPlanet.Defenses = source.Defenses - csPlanet.Homeworld = source.Homeworld - csPlanet.Scanner = source.Scanner - csPlanet.Spec = PlanetSpecToGamePlanetSpec(source.Spec) - csPlanet.RandomArtifact = source.RandomArtifact - return csPlanet -} -func (c *GameConverter) dbSalvageToCsSalvage(source Salvage) cs.Salvage { - var csSalvage cs.Salvage - csSalvage.MapObject = ExtendSalvageMapObject(source) - csSalvage.Cargo = ExtendSalvageCargo(source) - return csSalvage -} -func (c *GameConverter) dbShipDesignToCsShipDesign(source ShipDesign) cs.ShipDesign { - var csShipDesign cs.ShipDesign - csShipDesign.GameDBObject = ExtendShipDesignGameDBObject(source) - csShipDesign.Num = source.Num - csShipDesign.PlayerNum = source.PlayerNum - csShipDesign.OriginalPlayerNum = source.OriginalPlayerNum - csShipDesign.Name = source.Name - csShipDesign.Version = source.Version - csShipDesign.Hull = source.Hull - csShipDesign.HullSetNumber = source.HullSetNumber - csShipDesign.CannotDelete = source.CannotDelete - csShipDesign.Slots = ShipDesignSlotsToGameShipDesignSlots(source.Slots) - csShipDesign.Purpose = cs.ShipDesignPurpose(source.Purpose) - csShipDesign.Spec = ShipDesignSpecToGameShipDesignSpec(source.Spec) - return csShipDesign -} -func (c *GameConverter) dbWormholeToCsWormhole(source Wormhole) cs.Wormhole { - var csWormhole cs.Wormhole - csWormhole.MapObject = ExtendWormholeMapObject(source) - csWormhole.DestinationNum = source.DestinationNum - csWormhole.Stability = cs.WormholeStability(source.Stability) - csWormhole.YearsAtStability = source.YearsAtStability - csWormhole.Spec = WormholeSpecToGameWormholeSpec(source.Spec) - return csWormhole + return pTimeTime +} +func (c *GameConverter) salvageCargo(source Salvage) cs.Cargo { + var csCargo cs.Cargo + csCargo.Ironium = source.Ironium + csCargo.Boranium = source.Boranium + csCargo.Germanium = source.Germanium + return csCargo +} +func (c *GameConverter) wormHoleMapObject(source Wormhole) cs.MapObject { + var csMapObject cs.MapObject + csMapObject.GameDBObject = c.dbWormholeToCsGameDBObject(source) + csMapObject.Type = MapObjectTypeWormhole() + csMapObject.Position = c.dbWormholeToCsVector(source) + csMapObject.Num = source.Num + csMapObject.Name = source.Name + csMapObject.Tags = TagsToGameTags(source.Tags) + return csMapObject }