Starsector API
Loading...
Searching...
No Matches
FuelProduction.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.econ.impl;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
5import com.fs.starfarer.api.impl.campaign.ids.Commodities;
6import com.fs.starfarer.api.impl.campaign.ids.Stats;
7import com.fs.starfarer.api.util.Pair;
8
9
10public class FuelProduction extends BaseIndustry {
11
12 public void apply() {
13 super.apply(true);
14 supplyBonus.modifyFlat(getModId(2), market.getAdmin().getStats().getDynamic().getValue(Stats.FUEL_SUPPLY_BONUS_MOD, 0), "Administrator");
15
16 int size = market.getSize();
17
18 demand(Commodities.VOLATILES, size);
19 demand(Commodities.HEAVY_MACHINERY, size - 2);
20
21 supply(Commodities.FUEL, size - 2);
22
23 Pair<String, Integer> deficit = getMaxDeficit(Commodities.VOLATILES);
24
25 applyDeficitToProduction(1, deficit, Commodities.FUEL);
26
27 if (!isFunctional()) {
28 supply.clear();
29 }
30 }
31
32
33 @Override
34 public void unapply() {
35 super.unapply();
36 }
37
38
39 @Override
40 public String getCurrentImage() {
41 if (getSpecialItem() != null) {
42 return Global.getSettings().getSpriteName("industry", "advanced_fuel_prod");
43 }
44 return super.getCurrentImage();
45 }
46
47
48 public boolean isDemandLegal(CommodityOnMarketAPI com) {
49 return true;
50 }
51
52 public boolean isSupplyLegal(CommodityOnMarketAPI com) {
53 return true;
54 }
55
56// @Override
57// public List<InstallableIndustryItemPlugin> getInstallableItems() {
58// ArrayList<InstallableIndustryItemPlugin> list = new ArrayList<InstallableIndustryItemPlugin>();
59// list.add(new GenericInstallableItemPlugin(this));
60// return list;
61// }
62
63 @Override
64 protected boolean canImproveToIncreaseProduction() {
65 return true;
66 }
67}
static SettingsAPI getSettings()
Definition Global.java:51
Map< String, MutableCommodityQuantity > supply
Map< String, MutableCommodityQuantity > demand
Pair< String, Integer > getMaxDeficit(String ... commodityIds)
void applyDeficitToProduction(int index, Pair< String, Integer > deficit, String ... commodities)
String getSpriteName(String category, String id)