1package com.fs.starfarer.api.impl.campaign.procgen;
4import java.util.ArrayList;
7import com.fs.starfarer.api.campaign.CampaignTerrainAPI;
8import com.fs.starfarer.api.campaign.RingBandAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.campaign.StarSystemAPI;
11import com.fs.starfarer.api.impl.campaign.ids.Tags;
12import com.fs.starfarer.api.impl.campaign.ids.Terrain;
13import com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator.GenContext;
14import com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator.GenResult;
15import com.fs.starfarer.api.impl.campaign.terrain.RingSystemTerrainPlugin;
16import com.fs.starfarer.api.impl.campaign.terrain.BaseRingTerrain.RingParams;
17import com.fs.starfarer.api.util.WeightedRandomPicker;
21 public static class TexAndIndex {
27 TexAndIndex result =
new TexAndIndex();
31 ringSet.
add(
"ring_ice", 10f);
32 ringSet.
add(
"ring_dust", 10f);
35 String
set = ringSet.
pick();
37 if (
set.equals(
"ring_ice")) {
38 result.tex =
"rings_ice0";
41 }
else if (
set.equals(
"ring_dust")) {
42 result.tex =
"rings_dust0";
47 result.index = indexPicker.
pick();
56 if (context.parent !=
null) parent = context.parent;
62 float bandWidth = 256f;
68 numBands += (int) spiralFactor;
74 for (
float i = 0; i < numBands; i++) {
78 float radius = orbitRadius - i * bandWidth * 0.25f - i * bandWidth * 0.1f;
86 radius + bandWidth / 2f, -orbitDays);
95 List<SectorEntityToken> rings =
new ArrayList<SectorEntityToken>();
106 GenResult result =
new GenResult();
107 result.onlyIncrementByWidth =
false;
108 result.orbitalWidth = orbitRadius;
109 result.entities.addAll(rings);
114 return terrainData !=
null && (terrainData.
getId().equals(
"accretion_disk"));
TexAndIndex getTexAndIndex(TerrainGenDataSpec data)
boolean wantsToHandle(TerrainGenDataSpec terrainData, GenContext context)
GenResult generate(TerrainGenDataSpec terrainData, GenContext context)
static Color getColor(Color min, Color max)
RingBandAPI addRingBand(SectorEntityToken focus, String category, String key, float bandWidthInTexture, int bandIndex, Color color, float bandWidthInEngine, float middleRadius, float orbitDays)
SectorEntityToken addTerrain(String terrainId, Object param)
void setSpiral(boolean spiral)
void setSpiralFactor(float spiralFactor)
void setMinSpiralRadius(float minSpiralRadius)
void setCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays)