1package com.fs.starfarer.api.impl.campaign.terrain;
4import java.util.EnumSet;
6import org.lwjgl.util.vector.Vector2f;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignEngineLayers;
10import com.fs.starfarer.api.campaign.CampaignFleetAPI;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.combat.ViewportAPI;
13import com.fs.starfarer.api.graphics.SpriteAPI;
14import com.fs.starfarer.api.impl.campaign.terrain.AuroraRenderer.AuroraRendererDelegate;
18 public static class SpatialAnomalyParams
extends RingParams {
20 public CampaignFleetAPI source;
21 public SpatialAnomalyParams(CampaignFleetAPI source,
float dur,
float bandWidthInEngine, SectorEntityToken relatedEntity) {
22 super(bandWidthInEngine, bandWidthInEngine / 2f, relatedEntity);
28 transient protected SpriteAPI
texture =
null;
29 protected SpatialAnomalyParams
params;
36 this.params = (SpatialAnomalyParams) param;
37 name =
"Spatial Anomaly";
43 layers = EnumSet.of(CampaignEngineLayers.TERRAIN_7);
51 Object writeReplace() {
55 transient private EnumSet<CampaignEngineLayers> layers = EnumSet.noneOf(CampaignEngineLayers.class);
60 protected transient float phase = 0f;
62 super.advance(amount);
64 float period = (float)Math.PI * 2f;
65 phase += period/10f * amount;
69 if (
elapsed >= 0.3f) params.source =
null;
79 public void render(CampaignEngineLayers layer, ViewportAPI viewport) {
80 float alphaMult = viewport.getAlphaMult();
81 float left = params.dur -
elapsed;
82 if (left < 0) left = 0;
84 alphaMult *= left / 0.1f;
110 if (
entity instanceof CampaignFleetAPI) {
111 CampaignFleetAPI fleet = (CampaignFleetAPI)
entity;
113 float penalty = 0.5f;
114 fleet.getStats().addTemporaryModMult(0.1f,
getModId() +
"_1",
116 fleet.getStats().getFleetwideMaxBurnMod());
123 return super.containsPoint(point, radius);
131 return super.getTerrainName();
139 return "spatial_anomaly";
166 return new Color(255,165,100,255);
179 return params.bandWidthInEngine;
static SettingsAPI getSettings()
static SectorAPI getSector()
void render(float alphaMult)
void advance(float amount)
SectorEntityToken getEntity()
EnumSet< CampaignEngineLayers > getActiveLayers()
Color getAuroraColorForAngle(float angle)
transient SpriteAPI texture
float getAuroraInnerOffsetMult(float angle)
void advance(float amount)
void init(String terrainId, SectorEntityToken entity, Object param)
RangeBlockerUtil getAuroraBlocker()
boolean containsPoint(Vector2f point, float radius)
float getAuroraOuterRadius()
boolean canPlayerHoldStationIn()
float getAuroraBandWidthInTexture()
void render(CampaignEngineLayers layer, ViewportAPI viewport)
float getAuroraThicknessFlat(float angle)
SpatialAnomalyParams params
float getAuroraTexPerSegmentMult()
float getAuroraThicknessMult(float angle)
String getNameForTooltip()
String getEffectCategory()
void applyEffect(SectorEntityToken entity, float days)
SpriteAPI getAuroraTexture()
float getAuroraInnerRadius()
Vector2f getAuroraCenterLoc()
float getAuroraAlphaMultForAngle(float angle)
float getAuroraShortenMult(float angle)
SpriteAPI getSprite(String filename)