1package com.fs.starfarer.api.impl.campaign.enc;
3import java.util.ArrayList;
5import java.util.Random;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.EveryFrameScript;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.CampaignTerrainAPI;
13import com.fs.starfarer.api.campaign.LocationAPI;
14import com.fs.starfarer.api.campaign.listeners.ListenerUtil;
15import com.fs.starfarer.api.impl.campaign.velfield.SlipstreamTerrainPlugin2;
16import com.fs.starfarer.api.util.IntervalUtil;
17import com.fs.starfarer.api.util.Misc;
18import com.fs.starfarer.api.util.TimeoutTracker;
19import com.fs.starfarer.api.util.WeightedRandomPicker;
28 public static List<EPEncounterCreator>
CREATORS =
new ArrayList<EPEncounterCreator>();
48 String key =
"$encounterManager";
50 if (manager ==
null) {
66 protected Random
random =
new Random();
77 if (pf ==
null)
return;
91 if (where ==
null)
return;
98 float minDist = Float.MAX_VALUE;
112 if (dist < minRange || dist > maxRange)
continue;
113 if (dist < minDist) {
121 if (closest !=
null) {
125 float f = c.getFrequencyForPoint(
this, closest);
174 List<EncounterPoint> result =
new ArrayList<EncounterPoint>();
184 if (points !=
null) {
185 for (Vector2f p : points) {
187 if (dist > 10000f)
continue;
191 String
id = ter.getId() +
"_" + (int)Math.round(p.x) +
"_" + (int)Math.round(p.y);
static SettingsAPI getSettings()
static SectorAPI getSector()
static List< EncounterPoint > generateEncounterPoints(LocationAPI where)
List< EncounterPoint > generateEncounterPoints(LocationAPI where)
TimeoutTracker< String > creatorTimeout
TimeoutTracker< String > getCreatorTimeout()
static String EP_TYPE_SLIPSTREAM
static String EP_TYPE_OUTSIDE_SYSTEM
TimeoutTracker< String > getPointTimeout()
void advance(float amount)
static EncounterManager getInstance()
TimeoutTracker< String > pointTimeout
static List< EPEncounterCreator > CREATORS
static float MAX_EP_DIST_ADD
List< Vector2f > getEncounterPoints()
void advance(float amount)
void setRandom(Random random)
static boolean isInsideSlipstream(Vector2f loc, float radius)
static float getAngleDiff(float from, float to)
static float getDistance(SectorEntityToken from, SectorEntityToken to)
static float getAngleInDegrees(Vector2f v)
float convertToDays(float realSeconds)
List< CampaignTerrainAPI > getTerrainCopy()
CampaignFleetAPI getPlayerFleet()
CampaignClockAPI getClock()
LocationAPI getCurrentLocation()
List< EveryFrameScript > getScripts()
MemoryAPI getMemoryWithoutUpdate()
ListenerManagerAPI getListenerManager()
void addListener(Object listener)
void set(String key, Object value)
float getPointTimeoutMin()
float getPointTimeoutMax()
float getCreatorTimeoutMax()
void createEncounter(EncounterManager manager, EncounterPoint point)
float getCreatorTimeoutMin()