Starsector API
Loading...
Searching...
No Matches
AutofitPlugin.java
Go to the documentation of this file.
1package com.fs.starfarer.api.plugins;
2
3import java.util.List;
4import java.util.Random;
5
6import com.fs.starfarer.api.campaign.CampaignFleetAPI;
7import com.fs.starfarer.api.campaign.CargoAPI;
8import com.fs.starfarer.api.campaign.FactionAPI;
9import com.fs.starfarer.api.campaign.econ.SubmarketAPI;
10import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
11import com.fs.starfarer.api.combat.MutableShipStatsAPI;
12import com.fs.starfarer.api.combat.ShipAPI;
13import com.fs.starfarer.api.combat.ShipVariantAPI;
14import com.fs.starfarer.api.loading.FighterWingSpecAPI;
15import com.fs.starfarer.api.loading.WeaponSlotAPI;
16import com.fs.starfarer.api.loading.WeaponSpecAPI;
17
18
19
20
21public interface AutofitPlugin {
22 public interface AvailableWeapon {
23 String getId();
24 WeaponSpecAPI getSpec();
25 float getPrice();
26 CargoAPI getSource();
27 SubmarketAPI getSubmarket();
29 void setQuantity(int quantity);
30 float getOPCost(MutableCharacterStatsAPI stats, MutableShipStatsAPI shipStats);
31 }
32
33 public interface AvailableFighter {
34 String getId();
35 FighterWingSpecAPI getWingSpec();
36 float getPrice();
37 CargoAPI getSource();
38 SubmarketAPI getSubmarket();
40 void setQuantity(int quantity);
41 }
42
43 public interface AutofitPluginDelegate {
44 void fitFighterInSlot(int index, AvailableFighter fighter, ShipVariantAPI variant);
45 void clearFighterSlot(int index, ShipVariantAPI variant);
46 void fitWeaponInSlot(WeaponSlotAPI slot, AvailableWeapon weapon, ShipVariantAPI variant);
47 void clearWeaponSlot(WeaponSlotAPI slot, ShipVariantAPI variant);
48
49 List<AvailableWeapon> getAvailableWeapons();
50 List<AvailableFighter> getAvailableFighters();
51
52 boolean isPriority(WeaponSpecAPI weapon);
53 boolean isPriority(FighterWingSpecAPI wing);
54
55 List<String> getAvailableHullmods();
56 void syncUIWithVariant(ShipVariantAPI variant);
57
58 //void syncUIWithVariant();
59
60 ShipAPI getShip();
61
62 FactionAPI getFaction();
63
65
68 }
69
70
71
72
73 public static class AutofitOption {
74 public String id;
75 public String text;
76 public boolean checked;
77 public String tooltip;
78 public AutofitOption(String id, String text, boolean checked, String tooltip) {
79 this.id = id;
80 this.text = text;
81 this.checked = checked;
82 this.tooltip = tooltip;
83 }
84 }
85
86
87 //void init(AutofitPluginDelegate delegate);
88 List<AutofitOption> getOptions();
89 void doFit(ShipVariantAPI current, ShipVariantAPI target, int maxSMods, AutofitPluginDelegate delegate);
90 float getRating(ShipVariantAPI current, ShipVariantAPI target, AutofitPluginDelegate delegate);
92
93
95 void doQuickAction(ShipVariantAPI current, AutofitPluginDelegate delegate);
97
98
99 void autoAssignOfficers(CampaignFleetAPI fleet);
100 boolean isQuickActionEnabled(ShipVariantAPI currentVariant);
101 void setRandom(Random random);
102}
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
void clearWeaponSlot(WeaponSlotAPI slot, ShipVariantAPI variant)
void fitWeaponInSlot(WeaponSlotAPI slot, AvailableWeapon weapon, ShipVariantAPI variant)
void fitFighterInSlot(int index, AvailableFighter fighter, ShipVariantAPI variant)
void clearFighterSlot(int index, ShipVariantAPI variant)
float getOPCost(MutableCharacterStatsAPI stats, MutableShipStatsAPI shipStats)
void autoAssignOfficers(CampaignFleetAPI fleet)
void doFit(ShipVariantAPI current, ShipVariantAPI target, int maxSMods, AutofitPluginDelegate delegate)
boolean isQuickActionEnabled(ShipVariantAPI currentVariant)
void doQuickAction(ShipVariantAPI current, AutofitPluginDelegate delegate)
float getRating(ShipVariantAPI current, ShipVariantAPI target, AutofitPluginDelegate delegate)