1package com.fs.starfarer.api.impl.campaign;
4import java.util.LinkedHashSet;
6import org.lwjgl.opengl.GL11;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.CampaignEngineLayers;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.CargoAPI;
13import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
14import com.fs.starfarer.api.campaign.CustomEntitySpecAPI;
15import com.fs.starfarer.api.campaign.SectorEntityToken;
16import com.fs.starfarer.api.campaign.SectorEntityToken.VisibilityLevel;
17import com.fs.starfarer.api.campaign.SpecialItemData;
18import com.fs.starfarer.api.campaign.comm.IntelInfoPlugin;
19import com.fs.starfarer.api.combat.ViewportAPI;
20import com.fs.starfarer.api.graphics.SpriteAPI;
21import com.fs.starfarer.api.impl.campaign.ids.Items;
22import com.fs.starfarer.api.impl.campaign.ids.Tags;
23import com.fs.starfarer.api.impl.campaign.intel.misc.GateIntel;
24import com.fs.starfarer.api.impl.campaign.world.ZigLeashAssignmentAI;
25import com.fs.starfarer.api.ui.TooltipMakerAPI;
26import com.fs.starfarer.api.util.FaderUtil;
27import com.fs.starfarer.api.util.IntervalUtil;
28import com.fs.starfarer.api.util.JitterUtil;
29import com.fs.starfarer.api.util.Misc;
30import com.fs.starfarer.api.util.WarpingSpriteRendererUtil;
54 public static class GateData {
55 public LinkedHashSet<SectorEntityToken> scanned =
new LinkedHashSet<SectorEntityToken>();
60 if (!(data instanceof GateData)) {
61 data =
new GateData();
64 return (GateData) data;
119 super.init(
entity, pluginParams);
124 Object readResolve() {
139 glowFader =
new FaderUtil(0f, 1f, 1f,
true,
true);
200 f = 1f - (dist - 300f) / 100f;
213 float volumeMult = prox;
214 float suppressionMult = prox;
215 if (volumeMult <= 0)
return;
216 volumeMult = (float) Math.sqrt(volumeMult);
223 playbackLoc.scale(500f);
306 boolean alreadyHas =
false;
410 if (alphaMult <= 0f)
return;
420 float glowAlpha = 1f;
429 GL11.glEnable(GL11.GL_BLEND);
430 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
431 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
440 if (alphaMult <= 0f)
return;
443 if (spec ==
null)
return;
453 Color scannedGlowColor =
new Color(255,200,0,255);
454 Color activeGlowColor =
new Color(200,50,255,255);
456 scannedGlowColor = Color.white;
457 activeGlowColor = Color.white;
459 float glowAlpha = 1f;
473 if (c ==
null) c =
new Color(255,255,255,255);
482 if (!active && scanned) {
490 if (active && scanned) {
static SettingsAPI getSettings()
static SoundPlayerAPI getSoundPlayer()
static SectorAPI getSector()
transient boolean scaledSprites
static String CAN_SCAN_GATES
static GateData getGateData()
void showBeingUsed(float dur, float transitDistLY)
transient SpriteAPI starfield
static int getNumGatesScanned()
void setJitterColor(Color jitterColor)
static boolean canUseGates()
static boolean isScanned(SectorEntityToken gate)
float getProximitySoundFactor()
void init(SectorEntityToken entity, Object pluginParams)
void createMapTooltip(TooltipMakerAPI tooltip, boolean expanded)
static boolean isActive(SectorEntityToken gate)
static String GATES_ACTIVE
static void addGateScanned()
transient SpriteAPI activeGlow
transient SpriteAPI whirl2
transient SpriteAPI whirl1
static String NUM_GATES_SCANNED
void appendToCampaignTooltip(TooltipMakerAPI tooltip, VisibilityLevel level)
static float ACCUMULATED_TRANSIT_DIST_DECAY_RATE
void render(CampaignEngineLayers layer, ViewportAPI viewport)
static String GATE_SCANNED
static String PLAYER_CAN_USE_GATES
static float MOTE_SPAWN_MULT_BASELINE_DIST_LY
void showBeingUsed(float transitDistLY)
transient SpriteAPI concentric
transient WarpingSpriteRendererUtil warp
boolean hasCustomMapTooltip()
transient SpriteAPI scannedGlow
static boolean areGatesActive()
void advance(float amount)
transient SpriteAPI baseSprite
float accumulatedTransitDistLY
static final String JANUS
static void spawnMote(SectorEntityToken from)
void advance(float amount)
void setBounceDown(boolean bounceDown)
void advance(float amount)
void render(SpriteAPI s, float x, float y, float maxJitter, int numCopies)
static Vector2f getUnitVectorAtDegreeAngle(float degrees)
static final Vector2f ZERO
static Color getGrayColor()
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static float normalizeAngle(float angleDeg)
static float getAngleInDegrees(Vector2f v)
void advance(float amount)
void renderNoBlendOrRotate(SpriteAPI sprite, float x, float y)
SpriteAPI getSprite(String filename)
void playLoop(String id, Object playingEntity, float pitch, float volume, Vector2f loc, Vector2f vel)
float convertToDays(float realSeconds)
void suppressMusic(float maxLevel)
float getQuantity(CargoAPI.CargoItemType type, Object data)
CampaignFleetAPI getPlayerFleet()
Map< String, Object > getPersistentData()
CampaignClockAPI getClock()
boolean isInFastAdvance()
boolean isInNewGameAdvance()
IntelManagerAPI getIntelManager()
CampaignUIAPI getCampaignUI()
MemoryAPI getMemoryWithoutUpdate()
float getSensorContactFaderBrightness()
CustomCampaignEntityPlugin getCustomPlugin()
boolean isInCurrentLocation()
void setInteractionImage(String category, String key)
float getSensorFaderBrightness()
void setName(String name)
MemoryAPI getMemoryWithoutUpdate()
void setCustomDescriptionId(String customDescriptionId)
void removeTag(String tag)
CustomEntitySpecAPI getCustomEntitySpec()
void addIntel(IntelInfoPlugin plugin)
List< IntelInfoPlugin > getIntel()
void set(String key, Object value)
boolean getBoolean(String key)
void setSize(float width, float height)
void setAngle(float angle)
void renderAtCenter(float x, float y)
void setColor(Color color)
void setAlphaMult(float alphaMult)