4package com.fs.starfarer.api.impl.campaign.econ.impl;
7import java.util.ArrayList;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.campaign.SpecialItemData;
13import com.fs.starfarer.api.campaign.SpecialItemSpecAPI;
14import com.fs.starfarer.api.campaign.econ.Industry;
15import com.fs.starfarer.api.campaign.econ.MarketAPI;
16import com.fs.starfarer.api.campaign.econ.InstallableIndustryItemPlugin.InstallableItemDescriptionMode;
17import com.fs.starfarer.api.impl.campaign.ids.Conditions;
18import com.fs.starfarer.api.ui.TooltipMakerAPI;
19import com.fs.starfarer.api.util.Misc;
20import com.fs.starfarer.api.util.Pair;
24 public SpecialItemSpecAPI
spec;
32 if (mode == InstallableItemDescriptionMode.INDUSTRY_MENU_TOOLTIP ||
33 mode == InstallableItemDescriptionMode.CARGO_TOOLTIP) {
38 public String
getItemInstalledText(TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode) {
39 String name = Misc.ucFirst(
spec.getName().toLowerCase());
42 if (mode == InstallableItemDescriptionMode.MANAGE_ITEM_DIALOG_LIST ||
43 mode == InstallableItemDescriptionMode.INDUSTRY_TOOLTIP) {
45 }
else if (mode == InstallableItemDescriptionMode.MANAGE_ITEM_DIALOG_INSTALLED ||
46 mode == InstallableItemDescriptionMode.INDUSTRY_MENU_TOOLTIP) {
47 pre = name +
" currently installed. ";
49 if (mode == InstallableItemDescriptionMode.INDUSTRY_MENU_TOOLTIP ||
50 mode == InstallableItemDescriptionMode.CARGO_TOOLTIP) {
56 public void addItemDescription(Industry industry, TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode) {
62 protected void addItemDescriptionImpl(Industry industry, TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode, String pre,
float pad) {
67 return new String [0];
71 List<String> reqs =
new ArrayList<String>();
79 List<String> unmet =
new ArrayList<String>();
80 if (industry ==
null)
return unmet;
82 MarketAPI market = industry.getMarket();
86 if (!market.hasCondition(Conditions.NO_ATMOSPHERE)) {
90 if (!market.hasCondition(Conditions.HABITABLE)) {
94 if (market.hasCondition(Conditions.HABITABLE)) {
98 if (market.getPlanetEntity() !=
null && !market.getPlanetEntity().isGasGiant()) {
102 if (market.getPlanetEntity() !=
null && market.getPlanetEntity().isGasGiant()) {
106 if (market.hasCondition(Conditions.EXTREME_WEATHER)) {
110 if (market.hasCondition(Conditions.EXTREME_TECTONIC_ACTIVITY)) {
114 if (market.hasCondition(Conditions.RARE_ORE_SPARSE) ||
115 market.hasCondition(Conditions.RARE_ORE_MODERATE) ||
116 market.hasCondition(Conditions.RARE_ORE_ABUNDANT) ||
117 market.hasCondition(Conditions.RARE_ORE_RICH) ||
118 market.hasCondition(Conditions.RARE_ORE_ULTRARICH)) {
122 if (market.hasCondition(Conditions.VOLATILES_TRACE) ||
123 market.hasCondition(Conditions.VOLATILES_DIFFUSE) ||
124 market.hasCondition(Conditions.VOLATILES_ABUNDANT) ||
125 market.hasCondition(Conditions.VOLATILES_PLENTIFUL)) {
129 if (!market.hasCondition(Conditions.HOT) &&
130 !market.hasCondition(Conditions.VERY_HOT)) {
134 if (!market.hasCondition(Conditions.COLD) &&
135 !market.hasCondition(Conditions.VERY_COLD)) {
140 market.getLocationInHyperspace(),
true);
141 float dist = Float.MAX_VALUE;
142 if (p !=
null) dist = p.two;
154 InstallableItemDescriptionMode mode, String ... reqs) {
155 if (canInstall)
return;
159 for (String curr : reqs) {
164 Color reqColor = Misc.getBasePlayerColor();
165 if (mode != InstallableItemDescriptionMode.CARGO_TOOLTIP) {
166 reqColor = Misc.getNegativeHighlightColor();
170 if (!list.isEmpty()) list = list.substring(0, list.length() - 2);
171 if (!list.isEmpty()) {
172 text.addPara(
"Requires: " + list, opad,
173 Misc.getGrayColor(), reqColor, reqs);
static SettingsAPI getSettings()
List< String > getUnmetRequirements(Industry industry)
void addRequirements(TooltipMakerAPI text, boolean canInstall, InstallableItemDescriptionMode mode, String ... reqs)
void addItemDescriptionImpl(Industry industry, TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode, String pre, float pad)
List< String > getRequirements(Industry industry)
void addItemDescription(Industry industry, TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode)
BaseInstallableItemEffect(String id)
String getItemInstalledText(TooltipMakerAPI text, SpecialItemData data, InstallableItemDescriptionMode mode)
float getItemDescPad(InstallableItemDescriptionMode mode)
String[] getSimpleReqs(Industry industry)
static String NOT_EXTREME_WEATHER
static String NOT_EXTREME_TECTONIC_ACTIVITY
static String NO_ATMOSPHERE
static String NO_VOLATILES_DEPOSITS
static String HOT_OR_EXTREME_HEAT
static int CORONAL_TAP_LIGHT_YEARS
static String CORONAL_TAP_RANGE
static String COLD_OR_EXTREME_COLD
static String NOT_HABITABLE
static String NOT_A_GAS_GIANT
static String NO_TRANSPLUTONIC_ORE_DEPOSITS
static Pair< SectorEntityToken, Float > getNearestCoronalTap(Vector2f locInHyper, boolean usable)
SpecialItemSpecAPI getSpecialItemSpec(String itemId)