public abstract class BaseThemeGenerator extends java.lang.Object implements ThemeGenerator
Modifier and Type | Class and Description |
---|---|
static class |
BaseThemeGenerator.AddedEntity |
static class |
BaseThemeGenerator.EntityLocation |
static class |
BaseThemeGenerator.HabitationLevel |
static class |
BaseThemeGenerator.LocationType |
static class |
BaseThemeGenerator.OrbitGap |
static class |
BaseThemeGenerator.OrbitItem |
static class |
BaseThemeGenerator.StarSystemData |
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG |
static float |
NOT_HABITABLE_PLANET_PROB |
static float |
ORBITAL_HABITAT_PROB |
protected java.util.Random |
random |
Constructor and Description |
---|
BaseThemeGenerator() |
Modifier and Type | Method and Description |
---|---|
void |
addCaches(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> cacheTypes) |
BaseThemeGenerator.AddedEntity |
addCommRelay(BaseThemeGenerator.StarSystemData data,
float prob) |
BaseThemeGenerator.AddedEntity |
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,
java.lang.String defFaction,
float defProb,
int minStr,
int maxStr) |
BaseThemeGenerator.AddedEntity |
addDerelictShip(BaseThemeGenerator.StarSystemData data,
BaseThemeGenerator.EntityLocation loc,
java.lang.String variantId) |
void |
addDerelictShip(BaseThemeGenerator.StarSystemData data,
BaseThemeGenerator.EntityLocation loc,
WeightedRandomPicker<java.lang.String> factions) |
void |
addDerelictShips(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> factions) |
static BaseThemeGenerator.AddedEntity |
addEntity(java.util.Random random,
LocationAPI system,
BaseThemeGenerator.EntityLocation loc,
java.lang.String type,
java.lang.String faction) |
static BaseThemeGenerator.AddedEntity |
addEntity(java.util.Random random,
StarSystemAPI system,
WeightedRandomPicker<BaseThemeGenerator.EntityLocation> locs,
java.lang.String type,
java.lang.String faction) |
static BaseThemeGenerator.AddedEntity |
addEntityAutoDetermineType(java.util.Random random,
LocationAPI system,
BaseThemeGenerator.EntityLocation loc,
java.lang.String type,
java.lang.String faction) |
void |
addHabCenters(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> stationTypes) |
BaseThemeGenerator.AddedEntity |
addInactiveGate(BaseThemeGenerator.StarSystemData data,
float prob,
float probDebris,
float probShips,
WeightedRandomPicker<java.lang.String> factions) |
void |
addMiningStations(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> stationTypes) |
static BaseThemeGenerator.AddedEntity |
addNonSalvageEntity(LocationAPI system,
BaseThemeGenerator.EntityLocation loc,
java.lang.String type,
java.lang.String faction) |
java.util.List<BaseThemeGenerator.AddedEntity> |
addObjectives(BaseThemeGenerator.StarSystemData data,
float prob) |
void |
addResearchStations(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> stationTypes) |
void |
addRuins(PlanetAPI planet) |
static SectorEntityToken |
addSalvageEntity(LocationAPI location,
java.lang.String id,
java.lang.String faction) |
static SectorEntityToken |
addSalvageEntity(LocationAPI location,
java.lang.String id,
java.lang.String faction,
java.lang.Object pluginParams) |
static SectorEntityToken |
addSalvageEntity(java.util.Random random,
LocationAPI location,
java.lang.String id,
java.lang.String faction) |
static SectorEntityToken |
addSalvageEntity(java.util.Random random,
LocationAPI location,
java.lang.String id,
java.lang.String faction,
java.lang.Object pluginParams) |
void |
addShipGraveyard(BaseThemeGenerator.StarSystemData data,
float chanceToAddAny,
int min,
int max,
WeightedRandomPicker<java.lang.String> factions) |
void |
addShipGraveyard(BaseThemeGenerator.StarSystemData data,
SectorEntityToken focus,
WeightedRandomPicker<java.lang.String> factions) |
void |
addShipGraveyard(BaseThemeGenerator.StarSystemData data,
SectorEntityToken focus,
WeightedRandomPicker<java.lang.String> factions,
WeightedRandomPicker<java.lang.String> hulls) |
BaseThemeGenerator.AddedEntity |
addStation(BaseThemeGenerator.EntityLocation loc,
BaseThemeGenerator.StarSystemData data,
java.lang.String customEntityId,
java.lang.String factionId) |
static void |
clearRuins(MarketAPI market) |
static BaseThemeGenerator.StarSystemData |
computeSystemData(StarSystemAPI system) |
static boolean |
constellationIsEmpty(Constellation c) |
static void |
convertOrbitNoSpin(SectorEntityToken entity) |
static void |
convertOrbitNoSpin(SectorEntityToken entity,
float facing) |
static void |
convertOrbitPointingDown(SectorEntityToken entity) |
static void |
convertOrbitWithSpin(SectorEntityToken entity,
float spin) |
static BaseThemeGenerator.EntityLocation |
createLocationAtRandomGap(java.util.Random random,
SectorEntityToken center,
float minGap) |
WeightedRandomPicker<java.lang.String> |
createStringPicker(java.lang.Object... params) |
static WeightedRandomPicker<java.lang.String> |
createStringPicker(java.util.Random random,
java.lang.Object... params) |
static java.util.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) |
static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> |
getLocations(java.util.Random random,
StarSystemAPI system,
float minGap,
java.util.LinkedHashMap<BaseThemeGenerator.LocationType,java.lang.Float> weights) |
static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> |
getLocations(java.util.Random random,
StarSystemAPI system,
java.util.Set<SectorEntityToken> exclude,
float minGap,
java.util.LinkedHashMap<BaseThemeGenerator.LocationType,java.lang.Float> weights) |
static ObjectiveGenDataSpec |
getObjectiveSpec(java.lang.String id) |
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) |
java.util.Random |
getRandom() |
protected java.util.List<Constellation> |
getSortedAvailableConstellations(ThemeGenContext context,
boolean emptyOk,
Vector2f sortFrom,
java.util.List<Constellation> exclude)
Sorted by *descending* distance from sortFrom.
|
abstract java.lang.String |
getThemeId() |
float |
getWeight()
What fraction of the Sector this theme wants to be used for, relative to other themes.
|
static boolean |
isAreaEmpty(LocationAPI loc,
Vector2f coords) |
static BaseThemeGenerator.EntityLocation |
pickAnyLocation(java.util.Random random,
StarSystemAPI system,
float gap,
java.util.Set<SectorEntityToken> exclude) |
static BaseThemeGenerator.EntityLocation |
pickCommonLocation(java.util.Random random,
StarSystemAPI system,
float gap,
boolean allowStarOrbit,
java.util.Set<SectorEntityToken> exclude) |
static BaseThemeGenerator.EntityLocation |
pickHiddenLocation(java.util.Random random,
StarSystemAPI system,
float gap,
java.util.Set<SectorEntityToken> exclude) |
static BaseThemeGenerator.EntityLocation |
pickHiddenLocationNotNearStar(java.util.Random random,
StarSystemAPI system,
float gap,
java.util.Set<SectorEntityToken> exclude) |
static SectorEntityToken |
pickOuterEntityToSpawnNear(java.util.Random random,
StarSystemAPI system) |
java.lang.String |
pickRuinsType(PlanetAPI planet) |
static BaseThemeGenerator.EntityLocation |
pickUncommonLocation(java.util.Random random,
StarSystemAPI system,
float gap,
java.util.Set<SectorEntityToken> exclude) |
static BaseThemeGenerator.AddedEntity |
setEntityLocation(SectorEntityToken entity,
BaseThemeGenerator.EntityLocation loc,
java.lang.String type) |
void |
setRandom(java.util.Random random) |
boolean |
shouldHaveDecivilized(PlanetAPI planet,
java.lang.String ruins) |
static boolean |
systemIsEmpty(StarSystemAPI system) |
public static boolean DEBUG
protected java.util.Random random
public static float NOT_HABITABLE_PLANET_PROB
public static float ORBITAL_HABITAT_PROB
public abstract int getOrder()
ThemeGenerator
getOrder
in interface ThemeGenerator
public abstract java.lang.String getThemeId()
getThemeId
in interface ThemeGenerator
public float getWeight()
ThemeGenerator
getWeight
in interface ThemeGenerator
public abstract void generateForSector(ThemeGenContext context, float allowedSectorFraction)
generateForSector
in interface ThemeGenerator
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> factions)
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<java.lang.String> factions)
public void addShipGraveyard(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, WeightedRandomPicker<java.lang.String> factions, WeightedRandomPicker<java.lang.String> hulls)
public void addDerelictShips(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> factions)
public void addMiningStations(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> stationTypes)
public void addHabCenters(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> stationTypes)
public void addResearchStations(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> stationTypes)
public void addRuins(PlanetAPI planet)
public boolean shouldHaveDecivilized(PlanetAPI planet, java.lang.String ruins)
public java.util.List<BaseThemeGenerator.AddedEntity> addObjectives(BaseThemeGenerator.StarSystemData data, float prob)
public static ObjectiveGenDataSpec getObjectiveSpec(java.lang.String id)
public BaseThemeGenerator.AddedEntity addCommRelay(BaseThemeGenerator.StarSystemData data, float prob)
public BaseThemeGenerator.AddedEntity addInactiveGate(BaseThemeGenerator.StarSystemData data, float prob, float probDebris, float probShips, WeightedRandomPicker<java.lang.String> factions)
public java.lang.String pickRuinsType(PlanetAPI planet)
public BaseThemeGenerator.AddedEntity addStation(BaseThemeGenerator.EntityLocation loc, BaseThemeGenerator.StarSystemData data, java.lang.String customEntityId, java.lang.String factionId)
public void addCaches(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, WeightedRandomPicker<java.lang.String> cacheTypes)
public void addDebrisFields(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max)
public void addDebrisFields(BaseThemeGenerator.StarSystemData data, float chanceToAddAny, int min, int max, java.lang.String defFaction, float defProb, int minStr, int maxStr)
public BaseThemeGenerator.AddedEntity addDebrisField(BaseThemeGenerator.StarSystemData data, SectorEntityToken focus, float radius)
public WeightedRandomPicker<java.lang.String> createStringPicker(java.lang.Object... params)
public static WeightedRandomPicker<java.lang.String> createStringPicker(java.util.Random random, java.lang.Object... params)
public void addDerelictShip(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, WeightedRandomPicker<java.lang.String> factions)
public BaseThemeGenerator.AddedEntity addDerelictShip(BaseThemeGenerator.StarSystemData data, BaseThemeGenerator.EntityLocation loc, java.lang.String variantId)
public static BaseThemeGenerator.EntityLocation pickCommonLocation(java.util.Random random, StarSystemAPI system, float gap, boolean allowStarOrbit, java.util.Set<SectorEntityToken> exclude)
public static BaseThemeGenerator.EntityLocation pickUncommonLocation(java.util.Random random, StarSystemAPI system, float gap, java.util.Set<SectorEntityToken> exclude)
public static BaseThemeGenerator.EntityLocation pickAnyLocation(java.util.Random random, StarSystemAPI system, float gap, java.util.Set<SectorEntityToken> exclude)
public static BaseThemeGenerator.EntityLocation pickHiddenLocation(java.util.Random random, StarSystemAPI system, float gap, java.util.Set<SectorEntityToken> exclude)
public static BaseThemeGenerator.EntityLocation pickHiddenLocationNotNearStar(java.util.Random random, StarSystemAPI system, float gap, java.util.Set<SectorEntityToken> exclude)
public static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> getLocations(java.util.Random random, StarSystemAPI system, float minGap, java.util.LinkedHashMap<BaseThemeGenerator.LocationType,java.lang.Float> weights)
public static WeightedRandomPicker<BaseThemeGenerator.EntityLocation> getLocations(java.util.Random random, StarSystemAPI system, java.util.Set<SectorEntityToken> exclude, float minGap, java.util.LinkedHashMap<BaseThemeGenerator.LocationType,java.lang.Float> weights)
public static BaseThemeGenerator.EntityLocation createLocationAtRandomGap(java.util.Random random, SectorEntityToken center, float minGap)
public static java.util.List<BaseThemeGenerator.OrbitGap> findGaps(SectorEntityToken center, float minPad, float maxDist, float minGap)
public static float getInnerRadius(StarSystemAPI system)
public static SectorEntityToken pickOuterEntityToSpawnNear(java.util.Random random, StarSystemAPI system)
public static float getOuterRadius(StarSystemAPI system)
public static boolean isAreaEmpty(LocationAPI loc, Vector2f coords)
public static float getOrbitalRadius(SectorEntityToken center)
public static BaseThemeGenerator.AddedEntity addEntity(java.util.Random random, StarSystemAPI system, WeightedRandomPicker<BaseThemeGenerator.EntityLocation> locs, java.lang.String type, java.lang.String faction)
public static BaseThemeGenerator.AddedEntity addNonSalvageEntity(LocationAPI system, BaseThemeGenerator.EntityLocation loc, java.lang.String type, java.lang.String faction)
public static BaseThemeGenerator.AddedEntity addEntityAutoDetermineType(java.util.Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, java.lang.String type, java.lang.String faction)
public static BaseThemeGenerator.AddedEntity addEntity(java.util.Random random, LocationAPI system, BaseThemeGenerator.EntityLocation loc, java.lang.String type, java.lang.String faction)
public static BaseThemeGenerator.AddedEntity setEntityLocation(SectorEntityToken entity, BaseThemeGenerator.EntityLocation loc, java.lang.String type)
public static SectorEntityToken addSalvageEntity(LocationAPI location, java.lang.String id, java.lang.String faction)
public static SectorEntityToken addSalvageEntity(java.util.Random random, LocationAPI location, java.lang.String id, java.lang.String faction)
public static SectorEntityToken addSalvageEntity(LocationAPI location, java.lang.String id, java.lang.String faction, java.lang.Object pluginParams)
public static SectorEntityToken addSalvageEntity(java.util.Random random, LocationAPI location, java.lang.String id, java.lang.String faction, java.lang.Object pluginParams)
public static CargoAPI genCargoFromDrop(SectorEntityToken entity)
public static BaseThemeGenerator.StarSystemData computeSystemData(StarSystemAPI system)
public static void clearRuins(MarketAPI market)
public static void convertOrbitPointingDown(SectorEntityToken entity)
public static void convertOrbitNoSpin(SectorEntityToken entity)
public static void convertOrbitNoSpin(SectorEntityToken entity, float facing)
public static void convertOrbitWithSpin(SectorEntityToken entity, float spin)
public java.util.Random getRandom()
getRandom
in interface ThemeGenerator
public void setRandom(java.util.Random random)
setRandom
in interface ThemeGenerator
protected java.util.List<Constellation> getSortedAvailableConstellations(ThemeGenContext context, boolean emptyOk, Vector2f sortFrom, java.util.List<Constellation> exclude)
context
- sortFrom
- public static boolean constellationIsEmpty(Constellation c)
public static boolean systemIsEmpty(StarSystemAPI system)
Copyright © 2013 Fractal Softworks, LLC. All Rights Reserved.