1package com.fs.starfarer.api.impl.campaign.terrain;
3import java.util.EnumSet;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignEngineLayers;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.combat.ViewportAPI;
12import com.fs.starfarer.api.util.Misc;
23 public static class RingParams {
24 public float bandWidthInEngine;
25 public float middleRadius;
26 public SectorEntityToken relatedEntity;
28 public RingParams(
float bandWidthInEngine,
float middleRadius,
29 SectorEntityToken relatedEntity, String name) {
30 this.bandWidthInEngine = bandWidthInEngine;
31 this.middleRadius = middleRadius;
32 this.relatedEntity = relatedEntity;
35 public RingParams(
float bandWidthInEngine,
float middleRadius,
36 SectorEntityToken relatedEntity) {
37 this(bandWidthInEngine, middleRadius, relatedEntity,
null);
45 params = (RingParams) param;
52 return params.relatedEntity;
56 layers = EnumSet.of(CampaignEngineLayers.TERRAIN_2);
60 Object writeReplace() {
64 transient protected EnumSet<CampaignEngineLayers>
layers = EnumSet.of(CampaignEngineLayers.TERRAIN_2);
71 if (other.getContainingLocation() !=
this.entity.getContainingLocation())
return false;
77 float dist = Misc.getDistance(this.
entity.getLocation(), point);
84 return params.middleRadius - params.bandWidthInEngine / 2f;
88 return params.middleRadius + params.bandWidthInEngine / 2f;
92 return params.middleRadius + params.bandWidthInEngine / 2f + 50f;
101 if (width <= 1f)
return 1f;
104 float dist = Misc.getDistance(this.
entity.getLocation(), player.getLocation());
105 float mid =
params.middleRadius;
107 float distFromMid = Math.abs(dist - mid);
111 if (distFromMid < width * 0.5f)
return 1f;
112 return (width - distFromMid) / (width * 0.5f);
115 public void render(CampaignEngineLayers layer, ViewportAPI v) {
125 return params.middleRadius + params.bandWidthInEngine / 2f;
128 return params.middleRadius - params.bandWidthInEngine / 2f;
132 return params.middleRadius;
static SectorAPI getSector()
void renderOnMapAbove(float factor, float alphaMult)
void renderOnMap(float factor, float alphaMult)
float getProximitySoundFactor()
float getMinRadiusForContains()
RingParams getRingParams()
float getMinEffectRadius(Vector2f locFrom)
float getMaxEffectRadius(Vector2f locFrom)
boolean containsPoint(Vector2f point, float radius)
SectorEntityToken getRelatedEntity()
transient EnumSet< CampaignEngineLayers > layers
boolean containsEntity(SectorEntityToken other)
float getMaxRadiusForContains()
EnumSet< CampaignEngineLayers > getActiveLayers()
float getOptimalEffectRadius(Vector2f locFrom)
void render(CampaignEngineLayers layer, ViewportAPI v)
void init(String terrainId, SectorEntityToken entity, Object param)
float getExtraSoundRadius()
boolean isPreventedFromAffecting(SectorEntityToken other)