Starsector API
Loading...
Searching...
No Matches
SettingsAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api;
2
3import java.awt.Color;
4import java.io.IOException;
5import java.io.InputStream;
6import java.util.Collection;
7import java.util.List;
8
9import org.json.JSONArray;
10import org.json.JSONException;
11import org.json.JSONObject;
12import org.lwjgl.util.vector.Vector2f;
13
14import com.fs.starfarer.api.campaign.CustomEntitySpecAPI;
15import com.fs.starfarer.api.campaign.CustomUIPanelPlugin;
16import com.fs.starfarer.api.campaign.FactionAPI;
17import com.fs.starfarer.api.campaign.FactionSpecAPI;
18import com.fs.starfarer.api.campaign.LocationAPI;
19import com.fs.starfarer.api.campaign.PlanetSpecAPI;
20import com.fs.starfarer.api.campaign.SpecialItemSpecAPI;
21import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
22import com.fs.starfarer.api.campaign.econ.MarketAPI;
23import com.fs.starfarer.api.campaign.econ.SubmarketSpecAPI;
24import com.fs.starfarer.api.characters.MarketConditionSpecAPI;
25import com.fs.starfarer.api.characters.PersonAPI;
26import com.fs.starfarer.api.characters.SkillSpecAPI;
27import com.fs.starfarer.api.combat.CombatEntityAPI;
28import com.fs.starfarer.api.combat.CombatReadinessPlugin;
29import com.fs.starfarer.api.combat.ShipAIConfig;
30import com.fs.starfarer.api.combat.ShipAIPlugin;
31import com.fs.starfarer.api.combat.ShipAPI;
32import com.fs.starfarer.api.combat.ShipHullSpecAPI;
33import com.fs.starfarer.api.combat.ShipSystemSpecAPI;
34import com.fs.starfarer.api.combat.ShipVariantAPI;
35import com.fs.starfarer.api.combat.WeaponAPI.WeaponSize;
36import com.fs.starfarer.api.combat.WeaponAPI.WeaponType;
37import com.fs.starfarer.api.fleet.FleetMemberAPI;
38import com.fs.starfarer.api.graphics.SpriteAPI;
39import com.fs.starfarer.api.loading.AbilitySpecAPI;
40import com.fs.starfarer.api.loading.BarEventSpec;
41import com.fs.starfarer.api.loading.Description;
42import com.fs.starfarer.api.loading.Description.Type;
43import com.fs.starfarer.api.loading.EventSpecAPI;
44import com.fs.starfarer.api.loading.FighterWingSpecAPI;
45import com.fs.starfarer.api.loading.HullModSpecAPI;
46import com.fs.starfarer.api.loading.IndustrySpecAPI;
47import com.fs.starfarer.api.loading.PersonMissionSpec;
48import com.fs.starfarer.api.loading.RoleEntryAPI;
49import com.fs.starfarer.api.loading.TerrainSpecAPI;
50import com.fs.starfarer.api.loading.WeaponSlotAPI;
51import com.fs.starfarer.api.loading.WeaponSpecAPI;
52import com.fs.starfarer.api.plugins.LevelupPlugin;
53import com.fs.starfarer.api.ui.ButtonAPI;
54import com.fs.starfarer.api.ui.ButtonAPI.UICheckboxSize;
55import com.fs.starfarer.api.ui.CustomPanelAPI;
56import com.fs.starfarer.api.ui.LabelAPI;
57import com.fs.starfarer.api.ui.TextFieldAPI;
58import com.fs.starfarer.api.ui.TooltipMakerAPI;
59import com.fs.starfarer.api.util.ListMap;
60
66public interface SettingsAPI {
68
73 PersonAPI createPerson();
74
75 LabelAPI createLabel(String text, String font);
76
77 float getBonusXP(String key);
78
79 float getFloat(String key);
80 boolean getBoolean(String key);
81 ClassLoader getScriptClassLoader();
82
84
85 boolean isDevMode();
86 void setDevMode(boolean devMode);
87
88 Color getColor(String id);
89
90 Object getInstanceOfScript(String className);
91
98 String getString(String category, String id);
99
105 SpriteAPI getSprite(String filename);
106
113 SpriteAPI getSprite(String category, String key);
114
121 SpriteAPI getSprite(SpriteId id);
122
123 String getSpriteName(String category, String id);
124
131 InputStream openStream(String filename) throws IOException;
132
139 String loadText(String filename) throws IOException;
140
147 JSONObject loadJSON(String filename) throws IOException, JSONException;
148
159 JSONArray loadCSV(String filename) throws IOException, JSONException;
160
176 JSONArray getMergedSpreadsheetDataForMod(String idColumn, String path, String masterMod) throws IOException, JSONException;
177
178 JSONObject getMergedJSONForMod(String path, String masterMod) throws IOException, JSONException;
179
180
186
192
195
202 Description getDescription(String id, Type type);
203
204 CombatReadinessPlugin getCRPlugin();
205
206 int getCodeFor(String key);
207
208
209
210
211 WeaponSpecAPI getWeaponSpec(String weaponId);
212
213 void loadTexture(String filename) throws IOException;
214
215
223 float getTargetingRadius(Vector2f from, CombatEntityAPI target, boolean considerShield);
224
225
226 ShipVariantAPI getVariant(String variantId);
227
234 Object getPlugin(String id);
235
236 List<String> getSortedSkillIds();
237
238 SkillSpecAPI getSkillSpec(String skillId);
239
240 String getString(String key);
241
242 AbilitySpecAPI getAbilitySpec(String abilityId);
243
244 List<String> getSortedAbilityIds();
245
247
249
251
253
254 TerrainSpecAPI getTerrainSpec(String terrainId);
255 EventSpecAPI getEventSpec(String eventId);
256 CustomEntitySpecAPI getCustomEntitySpec(String id);
257
259
262 int getMaxSensorRange(LocationAPI loc);
263
264 List<String> getAllVariantIds();
265 List<String> getAptitudeIds();
266 List<String> getSkillIds();
267 LevelupPlugin getLevelupPlugin();
269
270 JSONObject loadJSON(String filename, String modId) throws IOException, JSONException;
271 JSONArray loadCSV(String filename, String modId) throws IOException, JSONException;
272 String loadText(String filename, String modId) throws IOException, JSONException;
273
275
279
280 List<RoleEntryAPI> getEntriesForRole(String factionId, String role);
281 void addEntryForRole(String factionId, String role, String variantId, float weight);
282 void removeEntryForRole(String factionId, String role, String variantId);
283
284 List<RoleEntryAPI> getDefaultEntriesForRole(String role);
285 void addDefaultEntryForRole(String role, String variantId, float weight);
286 void removeDefaultEntryForRole(String role, String variantId);
287
288 void profilerBegin(String id);
291
292 List<PlanetSpecAPI> getAllPlanetSpecs();
293
294 Object getSpec(Class c, String id, boolean nullOnNotFound);
295 void putSpec(Class c, String id, Object spec);
296 <T> Collection<T> getAllSpecs(Class<T> c);
297
302 String getRoman(int n);
304 String getNextCoolGreekLetter(Object context);
305 String getNextGreekLetter(Object context);
306
307 MarketConditionSpecAPI getMarketConditionSpec(String conditionId);
308
309
310 ShipAIPlugin createDefaultShipAI(ShipAPI ship, ShipAIConfig config);
311
312 HullModSpecAPI getHullModSpec(String modId);
313 FighterWingSpecAPI getFighterWingSpec(String wingId);
314 List<HullModSpecAPI> getAllHullModSpecs();
315 List<FighterWingSpecAPI> getAllFighterWingSpecs();
316
317 List<WeaponSpecAPI> getAllWeaponSpecs();
318
319 boolean isSoundEnabled();
320
322
324
325 float getAngleInDegreesFast(Vector2f v);
326 float getAngleInDegreesFast(Vector2f from, Vector2f to);
327
328 CommoditySpecAPI getCommoditySpec(String commodityId);
329
330 ShipHullSpecAPI getHullSpec(String hullId);
331
332 FactionSpecAPI getFactionSpec(String id);
333
334 int computeNumFighterBays(ShipVariantAPI variant);
335
336
341 boolean isInGame();
342
343 Object getNewPluginInstance(String id);
345
346
352 String getControlStringForEnumName(String name);
353
354 boolean isNewPlayer();
355
356 IndustrySpecAPI getIndustrySpec(String industryId);
357
358 List<CommoditySpecAPI> getAllCommoditySpecs();
359
360 int getInt(String key);
361
362 List<IndustrySpecAPI> getAllIndustrySpecs();
363
364 SpecialItemSpecAPI getSpecialItemSpec(String itemId);
365
366 List<SpecialItemSpecAPI> getAllSpecialItemSpecs();
367
368 List<ShipHullSpecAPI> getAllShipHullSpecs();
369
370 SpriteAPI getSprite(String category, String id, boolean emptySpriteOnNotFound);
371
372 ShipVariantAPI createEmptyVariant(String hullVariantId, ShipHullSpecAPI hullSpec);
373
378 ListMap<String> getHullIdToVariantListMap();
379
380
381
382 String readTextFileFromCommon(String filename) throws IOException;
383
390 void writeTextFileToCommon(String filename, String data) throws IOException;
391
392 boolean fileExistsInCommon(String filename);
393 void deleteTextFileFromCommon(String filename);
394
396 Color getDesignTypeColor(String designType);
397
398 boolean doesVariantExist(String variantId);
399
400 void addCommodityInfoToTooltip(TooltipMakerAPI tooltip, float initPad, CommoditySpecAPI spec,
401 int max, boolean withText, boolean withSell, boolean withBuy);
402
403
404 JSONObject getJSONObject(String key) throws JSONException;
405 JSONArray getJSONArray(String key) throws JSONException;
406
412 FactionAPI createBaseFaction(String factionId);
413
414 List<MarketConditionSpecAPI> getAllMarketConditionSpecs();
415 List<SubmarketSpecAPI> getAllSubmarketSpecs();
416
418
420
421 ShipSystemSpecAPI getShipSystemSpec(String id);
422 List<ShipSystemSpecAPI> getAllShipSystemSpecs();
423
426
432
438
439 int getShippingCapacity(MarketAPI market, boolean inFaction);
440 JSONObject getSettingsJSON();
445
446 void setFloat(String key, Float value);
447 void setBoolean(String key, Boolean value);
448
449 List<PersonMissionSpec> getAllMissionSpecs();
450 PersonMissionSpec getMissionSpec(String id);
451
452 List<BarEventSpec> getAllBarEventSpecs();
453 BarEventSpec getBarEventSpec(String id);
454
455 void setAutoTurnMode(boolean autoTurnMode);
456 boolean isAutoTurnMode();
457
459
460 float getFloatFromArray(String key, int index);
461
462 int getIntFromArray(String key, int index);
463
464 void loadTextureConvertBlackToAlpha(String filename) throws IOException;
465
467
468 ShipAIPlugin pickShipAIPlugin(FleetMemberAPI member, ShipAPI ship);
469
470 void unloadTexture(String filename);
471
472 void profilerSetEnabled(boolean enabled);
473
475
477
479
481
482 void forceMipmapsFor(String filename, boolean forceMipmaps) throws IOException;
483
489
490 float computeStringWidth(String in, String font);
491
492 TextFieldAPI createTextField(String text, String font);
493
494 ButtonAPI createCheckbox(String text, UICheckboxSize size);
495 ButtonAPI createCheckbox(String text, String font, Color checkColor, UICheckboxSize size);
496
497 CustomPanelAPI createCustom(float width, float height, CustomUIPanelPlugin plugin);
498
499 int getMissionScore(String id);
500
501 WeaponSlotAPI createWeaponSlot(String id, WeaponType weaponType, WeaponSize slotSize, String slotTypeStr,
502 String nodeId, Vector2f nodePos, float angle, float arc);
503
504 JSONArray getMergedSpreadsheetData(String idColumn, String path) throws IOException, JSONException;
505 JSONObject getMergedJSON(String path) throws IOException, JSONException;
506
507 void setEasySensorBonus(float easySensorBonus);
508
510 void setEnableShipExplosionWhiteout(boolean enableShipExplosionWhiteout);
511
512 List<WeaponSpecAPI> getSystemWeaponSpecs();
513
514 List<String> getSpriteKeys(String category);
515
516 JSONObject loadJSON(String filename, boolean withMods) throws IOException, JSONException;
517 JSONArray loadCSV(String filename, boolean withMods) throws IOException, JSONException;
518
521
522 void loadFont(String filename) throws IOException;
523
525
526}
WeaponSlotAPI createWeaponSlot(String id, WeaponType weaponType, WeaponSize slotSize, String slotTypeStr, String nodeId, Vector2f nodePos, float angle, float arc)
ButtonAPI createCheckbox(String text, String font, Color checkColor, UICheckboxSize size)
float getAngleInDegreesFast(Vector2f from, Vector2f to)
List< WeaponSpecAPI > getSystemWeaponSpecs()
void deleteTextFileFromCommon(String filename)
JSONArray getMergedSpreadsheetDataForMod(String idColumn, String path, String masterMod)
void putSpec(Class c, String id, Object spec)
JSONArray loadCSV(String filename)
JSONArray getJSONArray(String key)
ListMap< String > getHullIdToVariantListMap()
AbilitySpecAPI getAbilitySpec(String abilityId)
SpecialItemSpecAPI getSpecialItemSpec(String itemId)
int getIntFromArray(String key, int index)
void setEasySensorBonus(float easySensorBonus)
String getControlDescriptionForEnumName(String name)
LabelAPI createLabel(String text, String font)
SpriteAPI getSprite(String category, String key)
BarEventSpec getBarEventSpec(String id)
void loadTextureConvertBlackToAlpha(String filename)
void setBoolean(String key, Boolean value)
< T > Collection< T > getAllSpecs(Class< T > c)
int getMaxSensorRange(LocationAPI loc)
List< SubmarketSpecAPI > getAllSubmarketSpecs()
void writeTextFileToCommon(String filename, String data)
Description getDescription(String id, Type type)
float getTargetingRadius(Vector2f from, CombatEntityAPI target, boolean considerShield)
JSONObject loadJSON(String filename, boolean withMods)
void loadFont(String filename)
List< String > getAllVariantIds()
List< BarEventSpec > getAllBarEventSpecs()
void setAutoTurnMode(boolean autoTurnMode)
String loadText(String filename)
JSONObject getJSONObject(String key)
String getSpriteName(String category, String id)
float getFloatFromArray(String key, int index)
FactionSpecAPI getFactionSpec(String id)
void unloadTexture(String filename)
List< ShipSystemSpecAPI > getAllShipSystemSpecs()
void setDevMode(boolean devMode)
TerrainSpecAPI getTerrainSpec(String terrainId)
ShipVariantAPI getVariant(String variantId)
void addEntryForRole(String factionId, String role, String variantId, float weight)
List< IndustrySpecAPI > getAllIndustrySpecs()
SpriteAPI getSprite(String category, String id, boolean emptySpriteOnNotFound)
float computeStringWidth(String in, String font)
MarketConditionSpecAPI getMarketConditionSpec(String conditionId)
Object getSpec(Class c, String id, boolean nullOnNotFound)
CombatReadinessPlugin getCRPlugin()
Object getInstanceOfScript(String className)
SkillSpecAPI getSkillSpec(String skillId)
TextFieldAPI createTextField(String text, String font)
List< String > getSortedSkillIds()
CustomEntitySpecAPI getCustomEntitySpec(String id)
ShipHullSpecAPI getHullSpec(String hullId)
HullModSpecAPI getHullModSpec(String modId)
boolean doesVariantExist(String variantId)
IndustrySpecAPI getIndustrySpec(String industryId)
List< WeaponSpecAPI > getAllWeaponSpecs()
String loadText(String filename, String modId)
List< HullModSpecAPI > getAllHullModSpecs()
String getString(String category, String id)
JSONObject loadJSON(String filename)
JSONObject getMergedJSON(String path)
InputStream openStream(String filename)
void addCommodityInfoToTooltip(TooltipMakerAPI tooltip, float initPad, CommoditySpecAPI spec, int max, boolean withText, boolean withSell, boolean withBuy)
int computeNumFighterBays(ShipVariantAPI variant)
JSONArray loadCSV(String filename, boolean withMods)
String getControlStringForAbilitySlot(int index)
Object getNewPluginInstance(String id)
boolean getBoolean(String key)
List< String > getSpriteKeys(String category)
EventSpecAPI getEventSpec(String eventId)
ShipVariantAPI createEmptyVariant(String hullVariantId, ShipHullSpecAPI hullSpec)
CommoditySpecAPI getCommoditySpec(String commodityId)
List< String > getSortedAbilityIds()
JSONObject loadJSON(String filename, String modId)
ShipAIPlugin pickShipAIPlugin(FleetMemberAPI member, ShipAPI ship)
ShipAIPlugin createDefaultShipAI(ShipAPI ship, ShipAIConfig config)
JSONArray getMergedSpreadsheetData(String idColumn, String path)
void setFloat(String key, Float value)
String getNextGreekLetter(Object context)
boolean fileExistsInCommon(String filename)
CustomPanelAPI createCustom(float width, float height, CustomUIPanelPlugin plugin)
void removeEntryForRole(String factionId, String role, String variantId)
int getShippingCapacity(MarketAPI market, boolean inFaction)
void profilerSetEnabled(boolean enabled)
FighterWingSpecAPI getFighterWingSpec(String wingId)
List< SpecialItemSpecAPI > getAllSpecialItemSpecs()
List< PlanetSpecAPI > getAllPlanetSpecs()
void setEnableShipExplosionWhiteout(boolean enableShipExplosionWhiteout)
JSONObject getMergedJSONForMod(String path, String masterMod)
void forceMipmapsFor(String filename, boolean forceMipmaps)
List< CommoditySpecAPI > getAllCommoditySpecs()
WeaponSpecAPI getWeaponSpec(String weaponId)
JSONArray loadCSV(String filename, String modId)
ShipSystemSpecAPI getShipSystemSpec(String id)
List< RoleEntryAPI > getDefaultEntriesForRole(String role)
List< ShipHullSpecAPI > getAllShipHullSpecs()
SpriteAPI getSprite(String filename)
void addDefaultEntryForRole(String role, String variantId, float weight)
FactionAPI createBaseFaction(String factionId)
String getString(String key)
String readTextFileFromCommon(String filename)
ButtonAPI createCheckbox(String text, UICheckboxSize size)
PersonMissionSpec getMissionSpec(String id)
List< RoleEntryAPI > getEntriesForRole(String factionId, String role)
String getNextCoolGreekLetter(Object context)
List< MarketConditionSpecAPI > getAllMarketConditionSpecs()
void loadTexture(String filename)
String getControlStringForEnumName(String name)
List< PersonMissionSpec > getAllMissionSpecs()
List< FighterWingSpecAPI > getAllFighterWingSpecs()
float getAngleInDegreesFast(Vector2f v)
void removeDefaultEntryForRole(String role, String variantId)
SpriteAPI getSprite(SpriteId id)
Color getDesignTypeColor(String designType)