1package com.fs.starfarer.api.impl.campaign.intel.misc;
3import java.util.ArrayList;
4import java.util.Collections;
5import java.util.Comparator;
6import java.util.LinkedHashMap;
12import com.fs.starfarer.api.Global;
13import com.fs.starfarer.api.campaign.CargoAPI;
14import com.fs.starfarer.api.campaign.FactionAPI;
15import com.fs.starfarer.api.campaign.SectorEntityToken;
16import com.fs.starfarer.api.campaign.econ.MarketAPI;
17import com.fs.starfarer.api.fleet.FleetMemberAPI;
18import com.fs.starfarer.api.impl.campaign.ids.Factions;
19import com.fs.starfarer.api.impl.campaign.ids.Tags;
20import com.fs.starfarer.api.ui.Alignment;
21import com.fs.starfarer.api.ui.LabelAPI;
22import com.fs.starfarer.api.ui.SectorMapAPI;
23import com.fs.starfarer.api.ui.TooltipMakerAPI;
24import com.fs.starfarer.api.util.CountingMap;
25import com.fs.starfarer.api.util.Misc;
29 public static class ProductionData {
30 public LinkedHashMap<String, CargoAPI> data =
new LinkedHashMap<String, CargoAPI>();
32 public CargoAPI getCargo(String name) {
37 data.put(name, cargo);
41 public boolean isEmpty() {
42 for (
CargoAPI cargo : data.values()) {
43 if (!cargo.isEmpty())
return false;
44 if (cargo.getMothballedShips() !=
null && !cargo.getMothballedShips().getMembersListCopy().isEmpty())
return false;
51 protected ProductionData
data;
75 if (mode == ListInfoMode.IN_DESC) initPad = opad;
82 if (!
data.isEmpty()) {
85 info.
addPara(
"Items delivered to %s",
133 data =
new ProductionData();
145 info.
addPara(
"A total of %s worth of production effort has been put into projects that have not yet been " +
150 info.
addPara(
"No production work was done this month due to a lack of funds.", opad);
153 if (!
data.isEmpty()) {
154 info.
addPara(
"Production and other resource and ship hull acquisition completed during the last month.", opad);
164 List<String> keys =
new ArrayList<String>(
data.data.keySet());
165 Collections.sort(keys,
new Comparator<String>() {
166 public int compare(String o1, String o2) {
167 return o1.compareTo(o2);
171 for (String key : keys) {
181 float valueWidth = 30;
183 info.
addPara(
"Weapons, supplies, and other cargo:", opad);
199 counts.
add(member.getVariant().getHullSpec().getHullName() +
" " + member.getVariant().getDesignation());
202 info.
addPara(
"Ship hulls with basic armaments:", opad);
231 Set<String> tags = super.getIntelTags(map);
238 return super.getSortString();
242 return "Production Report";
263 return super.shouldRemoveIntel();
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static SectorAPI getSector()
static final String PLAYER
void addLogTimestamp(TooltipMakerAPI info, Color tc, float opad)
String getDays(float days)
void unindent(TooltipMakerAPI info)
Color getBulletColorForMode(ListInfoMode mode)
float getDaysSincePlayerVisible()
static String getDaysString(float days)
void bullet(TooltipMakerAPI info)
Color getTitleColor(ListInfoMode mode)
void setDuration(float days)
void createIntelInfo(TooltipMakerAPI info, ListInfoMode mode)
FactionAPI getFactionForUIColors()
void createSmallDescription(TooltipMakerAPI info, float width, float height)
Set< String > getIntelTags(SectorMapAPI map)
String getSmallDescriptionTitle()
SectorEntityToken getMapLocation(SectorMapAPI map)
boolean shouldRemoveIntel()
ProductionReportIntel(MarketAPI gatheringPoint, ProductionData data, int totalCost, int accrued, boolean noProductionThisMonth)
void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode)
boolean noProductionThisMonth
void add(K key, int quantity)
static Color getTextColor()
static String getDGSCredits(float num)
static Color getGrayColor()
static Color getHighlightColor()
CargoAPI createCargo(boolean unlimitedStacks)
String getSpriteName(String category, String id)
FleetDataAPI getFleetData()
void initMothballedShips(String factionId)
List< CargoStackAPI > getStacksCopy()
FleetDataAPI getMothballedShips()
List< FleetMemberAPI > getMembersListCopy()
CampaignFleetAPI getPlayerFleet()
FactionAPI getPlayerFaction()
SectorEntityToken getPrimaryEntity()
void setHighlightColors(Color ... colors)