57 float minCellSize = 12000f;
58 float cellSize = Math.max(minCellSize, sw * 0.05f);
60 CollisionGridUtil grid =
new CollisionGridUtil(-sw/2f, sw/2f, -sh/2f, sh/2f, cellSize);
62 for (MarketAPI market :
Global.
getSector().getEconomy().getMarketsCopy()) {
63 if (market.isHidden())
continue;
64 if (market.getContainingLocation() ==
null)
continue;
65 if (!market.isPlayerOwned())
continue;
67 float range = market.getStats().getDynamic().getMod(Stats.SLIPSTREAM_REVEAL_RANGE_LY_MOD).computeEffective(0f);
68 range *= Misc.getUnitsPerLightYear();
69 if (range <= 0)
continue;
74 Vector2f loc = market.getLocationInHyperspace();
75 CustomStreamRevealer revealer =
new CustomStreamRevealer(loc, range);
76 grid.addObject(revealer, loc, range * 2f, range * 2f);
79 if (extraPoint !=
null && extraRangeLY > 0) {
80 float range = extraRangeLY * Misc.getUnitsPerLightYear();
81 CustomStreamRevealer revealer =
new CustomStreamRevealer(extraPoint, range);
82 grid.addObject(revealer, extraPoint, range * 2f, range * 2f);
87 List<CampaignTerrainAPI> terrainList =
Global.
getSector().getHyperspace().getTerrainCopy();
88 for (CampaignTerrainAPI terrain : terrainList) {
94 for (SlipstreamSegment curr : stream.
getSegments()) {
95 if (curr.discovered)
continue;
96 Iterator<Object> iter = grid.getCheckIterator(curr.loc, curr.width / 2f, curr.width / 2f);
98 while (iter.hasNext()) {
99 Object obj = iter.next();
100 if (obj instanceof CustomStreamRevealer) {
101 CustomStreamRevealer rev = (CustomStreamRevealer) obj;
102 Vector2f loc = rev.loc;
103 float radius = rev.radius;
105 float dist = Misc.getDistance(loc, curr.loc);
106 if (dist > maxDist) {
114 curr.discovered =
true;