Starsector API
Loading...
Searching...
No Matches
SectorThemeGenerator.java
Go to the documentation of this file.
1
package
com.fs.starfarer.api.impl.campaign.procgen.themes;
2
3
import
java.util.ArrayList;
4
import
java.util.Collections;
5
import
java.util.Comparator;
6
import
java.util.List;
7
8
import
com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator;
9
10
public
class
SectorThemeGenerator
{
11
12
public
static
List<ThemeGenerator>
generators
=
new
ArrayList<ThemeGenerator>();
13
14
static
{
15
//generators.add(new SpecialThemeGenerator());
16
generators
.add(
new
DerelictThemeGenerator
());
17
generators
.add(
new
RemnantThemeGenerator
());
18
generators
.add(
new
RuinsThemeGenerator
());
19
generators
.add(
new
MiscellaneousThemeGenerator
());
20
}
21
22
public
static
void
generate
(
ThemeGenContext
context) {
23
Collections.sort(
generators
,
new
Comparator<ThemeGenerator>() {
24
public
int
compare(
ThemeGenerator
o1,
ThemeGenerator
o2) {
25
int
result = o1.
getOrder
() - o2.
getOrder
();
26
if
(result == 0)
return
o1.
getThemeId
().compareTo(o2.
getThemeId
());
27
return
result;
28
}
29
});
30
31
float
totalWeight = 0f;
32
for
(
ThemeGenerator
g :
generators
) {
33
totalWeight += g.getWeight();
34
g.setRandom(
StarSystemGenerator
.
random
);
35
}
36
37
for
(
ThemeGenerator
g :
generators
) {
38
float
w = g.getWeight();
39
40
float
f = 0f;
41
if
(totalWeight > 0) {
42
f = w / totalWeight;
43
}
else
{
44
if
(w > 0) f = 1f;
45
}
46
//g.setRandom(StarSystemGenerator.random);
47
g.generateForSector(context, f);
48
49
//float used = context.majorThemes.size();
50
totalWeight -= w;
51
52
}
53
}
54
55
56
57
58
}
com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator
Definition
StarSystemGenerator.java:47
com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator.random
static Random random
Definition
StarSystemGenerator.java:161
com.fs.starfarer.api.impl.campaign.procgen.themes.DerelictThemeGenerator
Definition
DerelictThemeGenerator.java:38
com.fs.starfarer.api.impl.campaign.procgen.themes.MiscellaneousThemeGenerator
Definition
MiscellaneousThemeGenerator.java:57
com.fs.starfarer.api.impl.campaign.procgen.themes.RemnantThemeGenerator
Definition
RemnantThemeGenerator.java:49
com.fs.starfarer.api.impl.campaign.procgen.themes.RuinsThemeGenerator
Definition
RuinsThemeGenerator.java:22
com.fs.starfarer.api.impl.campaign.procgen.themes.SectorThemeGenerator
Definition
SectorThemeGenerator.java:10
com.fs.starfarer.api.impl.campaign.procgen.themes.SectorThemeGenerator.generate
static void generate(ThemeGenContext context)
Definition
SectorThemeGenerator.java:22
com.fs.starfarer.api.impl.campaign.procgen.themes.SectorThemeGenerator.generators
static List< ThemeGenerator > generators
Definition
SectorThemeGenerator.java:12
com.fs.starfarer.api.impl.campaign.procgen.themes.ThemeGenContext
Definition
ThemeGenContext.java:10
com.fs.starfarer.api.impl.campaign.procgen.themes.ThemeGenerator
Definition
ThemeGenerator.java:6
com.fs.starfarer.api.impl.campaign.procgen.themes.ThemeGenerator.getOrder
int getOrder()
com.fs.starfarer.api.impl.campaign.procgen.themes.ThemeGenerator.getThemeId
String getThemeId()
src
com
fs
starfarer
api
impl
campaign
procgen
themes
SectorThemeGenerator.java
Generated by
1.9.8