1package com.fs.starfarer.api.impl.campaign.terrain;
3import java.util.EnumSet;
8import org.lwjgl.util.vector.Vector2f;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.CampaignEngineLayers;
12import com.fs.starfarer.api.campaign.CampaignFleetAPI;
13import com.fs.starfarer.api.campaign.CampaignTerrainPlugin;
14import com.fs.starfarer.api.campaign.SectorEntityToken;
15import com.fs.starfarer.api.campaign.rules.MemoryAPI;
16import com.fs.starfarer.api.combat.ViewportAPI;
17import com.fs.starfarer.api.loading.TerrainSpecAPI;
18import com.fs.starfarer.api.ui.Alignment;
19import com.fs.starfarer.api.ui.TooltipMakerAPI;
20import com.fs.starfarer.api.util.Misc;
28 protected String
name =
"Unknown";
85 if (fleet.isStationMode()) {
90 if (dist > renderRange) {
95 String key =
"$terrain_" + cat;
97 MemoryAPI mem = fleet.getMemoryWithoutUpdate();
105 mem.
set(key,
true, 0);
116 float volumeMult = prox;
117 float suppressionMult = prox;
120 if (volumeMult > 0) {
123 if (soundId !=
null) {
132 if (soundId !=
null) {
141 if (soundId !=
null) {
150 if (soundId !=
null) {
167 throw new RuntimeException(
"Override BaseTerrain.getEffectCategory()");
195 throw new RuntimeException(
196 "Override BaseTerrain.getActiveLayers() to return the CampaignEngineLayers the terrain should render in.");
200 throw new RuntimeException(
201 "Override BaseTerrain.getRenderRange() to return the maximum distance to render this terrain at (should exceed visible radius).");
361 public void renderOnRadar(Vector2f radarCenter,
float factor,
float alphaMult) {
383 return lockId !=
null && !lockId.equals(
id);
static SettingsAPI getSettings()
static SoundPlayerAPI getSoundPlayer()
static SectorAPI getSector()
String getNameForTooltip()
float getProximitySoundFactor()
boolean containsPoint(Vector2f point, float radius)
static final float EXTRA_SOUND_RADIUS
float getLoopFourVolume()
boolean isTooltipExpandable()
void applyEffect(SectorEntityToken entity, float days)
void createTravelSection(TooltipMakerAPI tooltip, boolean expanded, float firstPad)
boolean hasAIFlag(Object flag, CampaignFleetAPI fleet)
float getExtraSoundRadius()
float getMaxEffectRadius(Vector2f locFrom)
void preventOtherTerrainFromAffecting(SectorEntityToken other)
boolean containsEntity(SectorEntityToken other)
EnumSet< CampaignEngineLayers > getActiveLayers()
void createCombatSection(TooltipMakerAPI tooltip, boolean expanded)
void renderOnMap(float factor, float alphaMult)
void preventOtherTerrainFromAffecting(SectorEntityToken other, float dur)
boolean hasAIFlag(Object flag)
static String TERRAIN_LOCK_KEY
String getEffectCategory()
boolean canPlayerHoldStationIn()
void advance(float amount)
void createTooltip(TooltipMakerAPI tooltip, boolean expanded)
void setTerrainName(String name)
float getLoopThreePitch()
String getIconSpriteName()
float getMinEffectRadius(Vector2f locFrom)
SectorEntityToken getRelatedEntity()
void setEntity(SectorEntityToken entity)
float getOptimalEffectRadius(Vector2f locFrom)
boolean shouldPlayLoopFour()
boolean shouldCheckFleetsToApplyEffect()
boolean shouldPlayLoopThree()
boolean shouldPlayLoopOne()
void init(String terrainId, SectorEntityToken entity, Object param)
boolean isPreventedFromAffecting(SectorEntityToken other)
void renderOnRadar(Vector2f radarCenter, float factor, float alphaMult)
void renderOnMapAbove(float factor, float alphaMult)
void render(CampaignEngineLayers layer, ViewportAPI viewport)
boolean shouldPlayLoopTwo()
void setTerrainId(String id)
SectorEntityToken getEntity()
float getLoopThreeVolume()
void createFirstSection(TooltipMakerAPI tooltip, boolean expanded)
static final Vector2f ZERO
static float getDistance(SectorEntityToken from, SectorEntityToken to)
TerrainSpecAPI getTerrainSpec(String terrainId)
Color getColor(String id)
void playLoop(String id, Object playingEntity, float pitch, float volume, Vector2f loc, Vector2f vel)
float convertToDays(float realSeconds)
void suppressMusic(float maxLevel)
List< CampaignFleetAPI > getFleets()
CampaignFleetAPI getPlayerFleet()
CampaignClockAPI getClock()
CampaignUIAPI getCampaignUI()
LocationAPI getContainingLocation()
boolean isInCurrentLocation()
MemoryAPI getMemoryWithoutUpdate()
String getString(String key)
boolean contains(String key)
void set(String key, Object value)
float getMusicSuppression()