Starsector API
Loading...
Searching...
No Matches
MarketAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.campaign.econ;
2
3import java.awt.Color;
4import java.util.Collection;
5import java.util.LinkedHashSet;
6import java.util.List;
7import java.util.Random;
8import java.util.Set;
9
10import org.lwjgl.util.vector.Vector2f;
11
12import com.fs.starfarer.api.campaign.CampaignFleetAPI;
13import com.fs.starfarer.api.campaign.CommDirectoryAPI;
14import com.fs.starfarer.api.campaign.FactionAPI;
15import com.fs.starfarer.api.campaign.FactionAPI.ShipPickParams;
16import com.fs.starfarer.api.campaign.LocationAPI;
17import com.fs.starfarer.api.campaign.PlanetAPI;
18import com.fs.starfarer.api.campaign.SectorEntityToken;
19import com.fs.starfarer.api.campaign.StarSystemAPI;
20import com.fs.starfarer.api.campaign.rules.HasMemory;
21import com.fs.starfarer.api.campaign.rules.MemoryAPI;
22import com.fs.starfarer.api.characters.PersonAPI;
23import com.fs.starfarer.api.combat.MutableStat;
24import com.fs.starfarer.api.combat.MutableStatWithTempMods;
25import com.fs.starfarer.api.combat.StatBonus;
26import com.fs.starfarer.api.fleet.MutableMarketStatsAPI;
27import com.fs.starfarer.api.fleet.ShipFilter;
28import com.fs.starfarer.api.fleet.ShipRolePick;
29import com.fs.starfarer.api.impl.campaign.econ.impl.ConstructionQueue;
30import com.fs.starfarer.api.impl.campaign.population.PopulationComposition;
31
32public interface MarketAPI extends HasMemory {
33
34 public static enum MarketInteractionMode {
35 LOCAL,
36 REMOTE,
37 }
38
39 public static enum SurveyLevel {
40 NONE,
41 SEEN,
42 PRELIMINARY,
43 FULL
44 }
45
47 Set<SectorEntityToken> getConnectedEntities();
48
49 String getId();
50 String getName();
51 int getSize();
52
53 //Vector2f getLocation();
54
55 void setSize(int size);
56
57 List<CommodityOnMarketAPI> getAllCommodities();
59 List<CommodityOnMarketAPI> getCommoditiesWithTag(String tag);
60 List<CommodityOnMarketAPI> getCommoditiesWithTags(String ... tags);
61
62 MarketDemandAPI getDemand(String demandClass);
63 List<MarketDemandAPI> getDemandWithTag(String tag);
64
65 List<MarketConditionAPI> getConditions();
71 String addCondition(String id);
72
79 String addCondition(String id, Object param);
80
85 void removeCondition(String id);
86
91 void removeSpecificCondition(String token);
92
93 boolean hasCondition(String id);
94 boolean hasSpecificCondition(String token);
96 void reapplyCondition(String token);
97
99
100// StabilityTrackerAPI getStabilityTracker();
101
102 MutableStat getTariff();
103
109 StatBonus getDemandPriceMod();
110
115 StatBonus getSupplyPriceMod();
116
117
124 float getSupplyPrice(String commodityId, double quantity, boolean isPlayerPrice);
125
126
133 float getDemandPrice(String commodityId, double quantity, boolean isPlayerPrice);
134
135
143 float getDemandPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice);
144
152 float getSupplyPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice);
153
159 boolean isIllegal(String commodityId);
160
167
168 MutableStatWithTempMods getStability();
169
175
177 String getFactionId();
178
179 void addSubmarket(String specId);
180 boolean hasSubmarket(String specId);
181 List<SubmarketAPI> getSubmarketsCopy();
182 void removeSubmarket(String specId);
184 void setFactionId(String factionId);
185
186
191 MemoryAPI getMemory();
192
194
202 float pickShipAndAddToFleet(String role, ShipPickParams params, CampaignFleetAPI fleet);
203
204 float pickShipAndAddToFleet(String role, String factionId, ShipPickParams params, CampaignFleetAPI fleet);
205
207
208
211
212
215
216
217// /**
218// * Will be null unless inited. Repeated invocations will do nothing.
219// */
220// void initCommDirectory();
221
226
227 void addPerson(PersonAPI person);
228 void removePerson(PersonAPI person);
229 List<PersonAPI> getPeopleCopy();
230 MutableMarketStatsAPI getStats();
231
232 List<ShipRolePick> pickShipsForRole(String role, ShipPickParams params,
233 Random random, ShipFilter filter);
234 List<ShipRolePick> pickShipsForRole(String role, String factionId, ShipPickParams params, Random random, ShipFilter filter);
235
236
239 void setName(String name);
240 MutableStat getHazard();
241
247
248// boolean isSurveyed();
249// void setSurveyed(boolean surveyed);
251
252 SurveyLevel getSurveyLevel();
253 void setSurveyLevel(SurveyLevel surveyLevel);
254
255
256 void advance(float amount);
258 void setForceNoConvertOnSave(boolean forceNoConvertOnSave);
260
267
268
275 boolean isInEconomy();
276
277 List<Industry> getIndustries();
278 void addIndustry(String id);
279
285 void removeIndustry(String id, MarketInteractionMode mode, boolean forUpgrade);
287
292 Vector2f getLocation();
293
299
300 boolean hasIndustry(String id);
301 List<CommodityOnMarketAPI> getCommoditiesCopy();
303
306 boolean hasWaystation();
310 boolean isPlayerOwned();
311 void setPlayerOwned(boolean playerOwned);
313 float getExportIncome(boolean withOverhead);
315 MutableStat getIncomeMult();
316 MutableStat getUpkeepMult();
317 PopulationComposition getPopulation();
318 PopulationComposition getIncoming();
319 void setPopulation(PopulationComposition population);
320 void setIncoming(PopulationComposition incoming);
321// StatBonus getIncomingImmigrationMod();
322// StatBonus getOutgoingImmigrationMod();
323
324 LinkedHashSet<MarketImmigrationModifier> getImmigrationModifiers();
325 LinkedHashSet<MarketImmigrationModifier> getTransientImmigrationModifiers();
330 List<MarketImmigrationModifier> getAllImmigrationModifiers();
331
332// boolean isAllowImport();
333// void setAllowImport(boolean allowImport);
334// boolean isAllowExport();
335// void setAllowExport(boolean allowExport);
336
338 void setIncentiveCredits(float incentiveCredits);
339
341 void setImmigrationIncentivesOn(Boolean incentivesOn);
342
343
344 boolean isFreePort();
345 void setFreePort(boolean freePort);
347 void setImmigrationClosed(boolean closed);
350
351 PersonAPI getAdmin();
356 void setAdmin(PersonAPI admin);
358 void setDaysInExistence(float daysInExistence);
364 boolean hasSpaceport();
367
374 String getEconGroup();
375
381 void setEconGroup(String econGroup);
382
383 void addIndustry(String id, List<String> params);
384 boolean hasTag(String tag);
385 void addTag(String tag);
386 void removeTag(String tag);
387 Collection<String> getTags();
388 void clearTags();
389 String getOnOrAt();
390
393
399 boolean isHidden();
400
405 void setHidden(Boolean hidden);
406
408 void setUseStockpilesForShortages(boolean useStockpilesForShortages);
410 void addSubmarket(SubmarketAPI submarket);
411 ConstructionQueue getConstructionQueue();
412 boolean isInHyperspace();
413
414 LinkedHashSet<String> getSuppressedConditions();
415 boolean isConditionSuppressed(String id);
416 void suppressCondition(String id);
417 void unsuppressCondition(String id);
420 void setInvalidMissionTarget(Boolean invalidMissionTarget);
421 void setSuppressedConditions(LinkedHashSet<String> suppressedConditions);
422 void setRetainSuppressedConditionsSetWhenEmpty(Boolean retainSuppressedConditionsSetWhenEmpty);
424 boolean hasFunctionalIndustry(String id);
425}
426
427
428
429
430
void setSurveyLevel(SurveyLevel surveyLevel)
void addSubmarket(SubmarketAPI submarket)
void addTransientImmigrationModifier(MarketImmigrationModifier mod)
void removeImmigrationModifier(MarketImmigrationModifier mod)
List< CommodityOnMarketAPI > getCommoditiesWithTags(String ... tags)
LinkedHashSet< MarketImmigrationModifier > getTransientImmigrationModifiers()
void setUseStockpilesForShortages(boolean useStockpilesForShortages)
float pickShipAndAddToFleet(String role, ShipPickParams params, CampaignFleetAPI fleet)
List< ShipRolePick > pickShipsForRole(String role, String factionId, ShipPickParams params, Random random, ShipFilter filter)
void setHasSpaceport(boolean hasSpaceport)
void setPlayerOwned(boolean playerOwned)
float getDemandPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice)
List< ShipRolePick > pickShipsForRole(String role, ShipPickParams params, Random random, ShipFilter filter)
float pickShipAndAddToFleet(String role, String factionId, ShipPickParams params, CampaignFleetAPI fleet)
void setIncoming(PopulationComposition incoming)
String addCondition(String id, Object param)
void setDaysInExistence(float daysInExistence)
void addImmigrationModifier(MarketImmigrationModifier mod)
List< MarketDemandAPI > getDemandWithTag(String tag)
void setPlanetConditionMarketOnly(boolean isPlanetConditionMarketOnly)
void setImmigrationIncentivesOn(Boolean incentivesOn)
float getSupplyPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice)
float getSupplyPrice(String commodityId, double quantity, boolean isPlayerPrice)
float getExportIncome(boolean withOverhead)
CommodityOnMarketAPI getCommodityData(String commodityId)
void setPrimaryEntity(SectorEntityToken primaryEntity)
Set< SectorEntityToken > getConnectedEntities()
List< CommodityOnMarketAPI > getCommoditiesCopy()
SubmarketAPI getSubmarket(String specId)
List< CommodityOnMarketAPI > getCommoditiesWithTag(String tag)
boolean isIllegal(String commodityId)
MarketConditionAPI getCondition(String id)
void setSuppressedConditions(LinkedHashSet< String > suppressedConditions)
MutableStatWithTempMods getStability()
LinkedHashSet< String > getSuppressedConditions()
void addCondition(MarketConditionAPI mc)
float getDemandPrice(String commodityId, double quantity, boolean isPlayerPrice)
MarketConditionAPI getSpecificCondition(String token)
void removeIndustry(String id, MarketInteractionMode mode, boolean forUpgrade)
void addIndustry(String id, List< String > params)
void setPopulation(PopulationComposition population)
LinkedHashSet< MarketImmigrationModifier > getImmigrationModifiers()
void setIncentiveCredits(float incentiveCredits)
MarketConditionAPI getFirstCondition(String id)
void setRetainSuppressedConditionsSetWhenEmpty(Boolean retainSuppressedConditionsSetWhenEmpty)
void setHasWaystation(boolean hasWaystation)
void removeTransientImmigrationModifier(MarketImmigrationModifier mod)
List< MarketConditionAPI > getConditions()
boolean isIllegal(CommodityOnMarketAPI com)
void setForceNoConvertOnSave(boolean forceNoConvertOnSave)
List< MarketImmigrationModifier > getAllImmigrationModifiers()
MarketDemandAPI getDemand(String demandClass)
List< CommodityOnMarketAPI > getAllCommodities()
void setInvalidMissionTarget(Boolean invalidMissionTarget)