示例#1
0
// Convert the station/outpost object provided by evego's API into a more
// useful JSON object to be sent to the client.
func stationFromAPI(db evego.Database, s *evego.Station, isOutpost bool) station {
	system, _ := db.SolarSystemForID(s.SystemID)
	stn := station{
		Name:                   s.Name,
		ID:                     s.ID,
		SystemName:             system.Name,
		Constellation:          system.Constellation,
		Region:                 system.Region,
		Owner:                  s.Corporation,
		OwnerID:                s.CorporationID,
		ReprocessingEfficiency: s.ReprocessingEfficiency,
	}
	// Calculate rounded security as displayed in client—see
	// http://wiki.eveuniversity.org/System_Security for rules.
	if system.Security >= 0.05 || system.Security < 0.00 {
		// high or low based on rounding.
		stn.Security = roundSecurity(system.Security)
	} else {
		// lowsec, not nullsec—rounds up.
		stn.Security = 0.1
	}
	if isOutpost {
		stn.Outpost = true
		// Reprocessing efficiency for outposts isn't provided in the SDE,
		// so we default to a basic station.
		stn.ReprocessingEfficiency = 0.50
	}
	return stn
}