Class BaseThemeGenerator
java.lang.Object
com.fs.starfarer.api.impl.campaign.procgen.themes.BaseThemeGenerator
- All Implemented Interfaces:
ThemeGenerator
- Direct Known Subclasses:
DerelictThemeGenerator
,MiscellaneousThemeGenerator
,RemnantThemeGenerator
,RuinsThemeGenerator
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
static enum
static enum
static class
static class
static class
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCaches
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> cacheTypes) addCommRelay
(BaseThemeGenerator.StarSystemData data, float prob) addDebrisField
(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, float radius) void
addDebrisFields
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max) void
addDebrisFields
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, String defFaction, float defProb, int minStr, int maxStr) void
addDerelictShip
(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, WeightedRandomPicker<String> factions) addDerelictShip
(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, String variantId) void
addDerelictShips
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> factions) addEntity
(Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) addEntity
(Random random, StarSystemAPI system, WeightedRandomPicker<BaseThemeGenerator.EntityLocation> locs, String type, String faction) addEntityAutoDetermineType
(Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) void
addHabCenters
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) addInactiveGate
(BaseThemeGenerator.StarSystemData data, float prob, float probDebris, float probShips, WeightedRandomPicker<String> factions) void
addMiningStations
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) addNonSalvageEntity
(LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) addObjectives
(BaseThemeGenerator.StarSystemData data, float prob) void
addResearchStations
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) void
static SectorEntityToken
addSalvageEntity
(LocationAPI location, String id, String faction) static SectorEntityToken
addSalvageEntity
(LocationAPI location, String id, String faction, Object pluginParams) static SectorEntityToken
addSalvageEntity
(Random random, LocationAPI location, String id, String faction) static SectorEntityToken
addSalvageEntity
(Random random, LocationAPI location, String id, String faction, Object pluginParams) void
addShipGraveyard
(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> factions) void
addShipGraveyard
(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<String> factions) void
addShipGraveyard
(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<String> factions, WeightedRandomPicker<String> hulls) addStation
(BaseThemeGenerator.EntityLocation loc, BaseThemeGenerator.StarSystemData data, String customEntityId, String factionId) static void
clearRuins
(MarketAPI market) computeSystemData
(StarSystemAPI system) static boolean
static void
convertOrbitNoSpin
(SectorEntityToken entity) static void
convertOrbitNoSpin
(SectorEntityToken entity, float facing) static void
static void
convertOrbitWithSpin
(SectorEntityToken entity, float spin) createLocationAtRandomGap
(Random random, SectorEntityToken center, float minGap) createStringPicker
(Object... params) static WeightedRandomPicker<String>
createStringPicker
(Random random, Object... params) static List<BaseThemeGenerator.OrbitGap>
findGaps
(SectorEntityToken center, float minPad, float maxDist, float minGap) static CargoAPI
genCargoFromDrop
(SectorEntityToken entity) abstract void
generateForSector
(ThemeGenContext context, float allowedSectorFraction) static float
getInnerRadius
(StarSystemAPI system) getLocations
(Random random, StarSystemAPI system, float minGap, LinkedHashMap<BaseThemeGenerator.LocationType, Float> weights) getLocations
(Random random, StarSystemAPI system, Set<SectorEntityToken> exclude, float minGap, LinkedHashMap<BaseThemeGenerator.LocationType, Float> weights) static ObjectiveGenDataSpec
static float
getOrbitalRadius
(SectorEntityToken center) abstract int
getOrder()
Themes with lower "order" values get their shot at generating content first.static float
getOuterRadius
(StarSystemAPI system) protected List<Constellation>
getSortedAvailableConstellations
(ThemeGenContext context, boolean emptyOk, org.lwjgl.util.vector.Vector2f sortFrom, List<Constellation> exclude) Sorted by *descending* distance from sortFrom.abstract String
float
What fraction of the Sector this theme wants to be used for, relative to other themes.static boolean
isAreaEmpty
(LocationAPI loc, org.lwjgl.util.vector.Vector2f coords) pickAnyLocation
(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) pickCommonLocation
(Random random, StarSystemAPI system, float gap, boolean allowStarOrbit, Set<SectorEntityToken> exclude) pickHiddenLocation
(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) pickHiddenLocationNotNearStar
(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) static SectorEntityToken
pickOuterEntityToSpawnNear
(Random random, StarSystemAPI system) pickRuinsType
(PlanetAPI planet) pickUncommonLocation
(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) setEntityLocation
(SectorEntityToken entity, BaseThemeGenerator.EntityLocation loc, String type) void
boolean
shouldHaveDecivilized
(PlanetAPI planet, String ruins) static boolean
systemIsEmpty
(StarSystemAPI system)
-
Field Details
-
DEBUG
public static boolean DEBUG -
random
-
NOT_HABITABLE_PLANET_PROB
public static float NOT_HABITABLE_PLANET_PROB -
ORBITAL_HABITAT_PROB
public static float ORBITAL_HABITAT_PROB
-
-
Constructor Details
-
BaseThemeGenerator
public BaseThemeGenerator()
-
-
Method Details
-
getOrder
public abstract int getOrder()Description copied from interface:ThemeGenerator
Themes with lower "order" values get their shot at generating content first.- Specified by:
getOrder
in interfaceThemeGenerator
- Returns:
-
getThemeId
- Specified by:
getThemeId
in interfaceThemeGenerator
-
getWeight
public float getWeight()Description copied from interface:ThemeGenerator
What fraction of the Sector this theme wants to be used for, relative to other themes. The fraction it gets is weight / (total weight of all themes). Base value is 100.- Specified by:
getWeight
in interfaceThemeGenerator
- Returns:
-
generateForSector
- Specified by:
generateForSector
in interfaceThemeGenerator
-
addShipGraveyard
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> factions) -
addShipGraveyard
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<String> factions) -
addShipGraveyard
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<String> factions, WeightedRandomPicker<String> hulls) -
addDerelictShips
public void addDerelictShips(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> factions) -
addMiningStations
public void addMiningStations(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) -
addHabCenters
public void addHabCenters(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) -
addResearchStations
public void addResearchStations(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> stationTypes) -
addRuins
-
shouldHaveDecivilized
-
addObjectives
public List<BaseThemeGenerator.AddedEntity> addObjectives(BaseThemeGenerator.StarSystemData data, float prob) -
getObjectiveSpec
-
addCommRelay
public BaseThemeGenerator.AddedEntity addCommRelay(BaseThemeGenerator.StarSystemData data, float prob) -
addInactiveGate
public BaseThemeGenerator.AddedEntity addInactiveGate(BaseThemeGenerator.StarSystemData data, float prob, float probDebris, float probShips, WeightedRandomPicker<String> factions) -
pickRuinsType
-
addStation
public BaseThemeGenerator.AddedEntity addStation(BaseThemeGenerator.EntityLocation loc, BaseThemeGenerator.StarSystemData data, String customEntityId, String factionId) -
addCaches
public void addCaches(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<String> cacheTypes) -
addDebrisFields
public void addDebrisFields(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max) -
addDebrisFields
public void addDebrisFields(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, String defFaction, float defProb, int minStr, int maxStr) -
addDebrisField
public BaseThemeGenerator.AddedEntity addDebrisField(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, float radius) -
createStringPicker
-
createStringPicker
-
addDerelictShip
public void addDerelictShip(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, WeightedRandomPicker<String> factions) -
addDerelictShip
public BaseThemeGenerator.AddedEntity addDerelictShip(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, String variantId) -
pickCommonLocation
public static BaseThemeGenerator.EntityLocation pickCommonLocation(Random random, StarSystemAPI system, float gap, boolean allowStarOrbit, Set<SectorEntityToken> exclude) -
pickUncommonLocation
public static BaseThemeGenerator.EntityLocation pickUncommonLocation(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) -
pickAnyLocation
public static BaseThemeGenerator.EntityLocation pickAnyLocation(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) -
pickHiddenLocation
public static BaseThemeGenerator.EntityLocation pickHiddenLocation(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) -
pickHiddenLocationNotNearStar
public static BaseThemeGenerator.EntityLocation pickHiddenLocationNotNearStar(Random random, StarSystemAPI system, float gap, Set<SectorEntityToken> exclude) -
getLocations
public static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> getLocations(Random random, StarSystemAPI system, float minGap, LinkedHashMap<BaseThemeGenerator.LocationType, Float> weights) -
getLocations
public static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> getLocations(Random random, StarSystemAPI system, Set<SectorEntityToken> exclude, float minGap, LinkedHashMap<BaseThemeGenerator.LocationType, Float> weights) -
createLocationAtRandomGap
public static BaseThemeGenerator.EntityLocation createLocationAtRandomGap(Random random, SectorEntityToken center, float minGap) -
findGaps
public static List<BaseThemeGenerator.OrbitGap> findGaps(SectorEntityToken center, float minPad, float maxDist, float minGap) -
getInnerRadius
-
pickOuterEntityToSpawnNear
-
getOuterRadius
-
isAreaEmpty
-
getOrbitalRadius
-
addEntity
public static BaseThemeGenerator.AddedEntity addEntity(Random random, StarSystemAPI system, WeightedRandomPicker<BaseThemeGenerator.EntityLocation> locs, String type, String faction) -
addNonSalvageEntity
public static BaseThemeGenerator.AddedEntity addNonSalvageEntity(LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) -
addEntityAutoDetermineType
public static BaseThemeGenerator.AddedEntity addEntityAutoDetermineType(Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) -
addEntity
public static BaseThemeGenerator.AddedEntity addEntity(Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, String type, String faction) -
setEntityLocation
public static BaseThemeGenerator.AddedEntity setEntityLocation(SectorEntityToken entity, BaseThemeGenerator.EntityLocation loc, String type) -
addSalvageEntity
-
addSalvageEntity
public static SectorEntityToken addSalvageEntity(Random random, LocationAPI location, String id, String faction) -
addSalvageEntity
public static SectorEntityToken addSalvageEntity(LocationAPI location, String id, String faction, Object pluginParams) -
addSalvageEntity
public static SectorEntityToken addSalvageEntity(Random random, LocationAPI location, String id, String faction, Object pluginParams) -
genCargoFromDrop
-
computeSystemData
-
clearRuins
-
convertOrbitPointingDown
-
convertOrbitNoSpin
-
convertOrbitNoSpin
-
convertOrbitWithSpin
-
getRandom
- Specified by:
getRandom
in interfaceThemeGenerator
-
setRandom
- Specified by:
setRandom
in interfaceThemeGenerator
-
getSortedAvailableConstellations
protected List<Constellation> getSortedAvailableConstellations(ThemeGenContext context, boolean emptyOk, org.lwjgl.util.vector.Vector2f sortFrom, List<Constellation> exclude) Sorted by *descending* distance from sortFrom.- Parameters:
context
-sortFrom
-- Returns:
-
constellationIsEmpty
-
systemIsEmpty
-