Skip to content

Commit a6e0541

Browse files
JasperGeurtzBytekeeper
authored andcommitted
move almost everything to just the bwem package
1 parent e6b113f commit a6e0541

34 files changed

+395
-628
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//////////////////////////////////////////////////////////////////////////
1212

13-
package bwem.typedef;
13+
package bwem;
1414

1515
/**
1616
* Immutable wrapper of the integer primitive to satisfy the original C++ definition:
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,10 @@
1010
//
1111
//////////////////////////////////////////////////////////////////////////
1212

13-
package bwem.area;
13+
package bwem;
1414

1515
import bwapi.TilePosition;
1616
import bwapi.WalkPosition;
17-
import bwem.Base;
18-
import bwem.ChokePoint;
19-
import bwem.area.typedef.AreaId;
20-
import bwem.typedef.Altitude;
21-
import bwem.unit.Geyser;
22-
import bwem.unit.Mineral;
2317

2418
import java.util.ArrayList;
2519
import java.util.HashMap;

src/main/java/bwem/area/typedef/AreaId.java renamed to src/main/java/bwem/AreaId.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//
1111
//////////////////////////////////////////////////////////////////////////
1212

13-
package bwem.area.typedef;
13+
package bwem;
1414

1515
/**
1616
* Immutable wrapper of the integer primitive to satisfy the original C++ definition:

src/main/java/bwem/area/AreaInitializer.java renamed to src/main/java/bwem/AreaInitializer.java

Lines changed: 38 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -10,45 +10,29 @@
1010
//
1111
//////////////////////////////////////////////////////////////////////////
1212

13-
package bwem.area;
14-
15-
import static bwem.area.typedef.AreaId.UNINITIALIZED;
13+
package bwem;
1614

1715
import bwapi.Pair;
1816
import bwapi.TilePosition;
1917
import bwapi.UnitType;
2018
import bwapi.WalkPosition;
21-
import bwem.Base;
22-
import bwem.CheckMode;
23-
import bwem.ChokePoint;
19+
import bwem.util.BwemExt;
20+
import bwem.util.CheckMode;
2421
import bwem.util.Markable;
2522
import bwem.util.StaticMarkable;
26-
import bwem.area.typedef.AreaId;
27-
import bwem.map.Map;
28-
import bwem.map.TerrainData;
29-
import bwem.tile.MiniTile;
30-
import bwem.tile.Tile;
31-
import bwem.tile.TileImpl;
32-
import bwem.unit.Geyser;
33-
import bwem.unit.Mineral;
34-
import bwem.unit.Neutral;
35-
import bwem.unit.Resource;
36-
import bwem.unit.StaticBuilding;
37-
import bwem.util.BwemExt;
38-
import java.util.ArrayList;
39-
import java.util.Comparator;
40-
import java.util.List;
41-
import java.util.PriorityQueue;
42-
import java.util.Queue;
4323

44-
public class AreaInitializer extends Area {
24+
import java.util.*;
25+
26+
import static bwem.AreaId.UNINITIALIZED;
27+
28+
class AreaInitializer extends Area {
4529

4630
private static final StaticMarkable staticMarkable = new StaticMarkable();
4731
private final Markable markable;
4832

4933
private final Map map;
5034

51-
public AreaInitializer(
35+
AreaInitializer(
5236
final Map map, final AreaId areaId, final WalkPosition top, final int miniTileCount) {
5337
super(areaId, top, miniTileCount);
5438

@@ -72,15 +56,15 @@ public AreaInitializer(
7256
super.highestAltitude = topMiniTile.getAltitude();
7357
}
7458

75-
public static StaticMarkable getStaticMarkable() {
59+
static StaticMarkable getStaticMarkable() {
7660
return staticMarkable;
7761
}
7862

79-
public Markable getMarkable() {
63+
Markable getMarkable() {
8064
return this.markable;
8165
}
8266

83-
public void addChokePoints(final Area area, final List<ChokePoint> chokePoints) {
67+
void addChokePoints(final Area area, final List<ChokePoint> chokePoints) {
8468
if (!(super.chokePointsByArea.get(area) == null && chokePoints != null)) {
8569
throw new IllegalArgumentException();
8670
}
@@ -90,21 +74,21 @@ public void addChokePoints(final Area area, final List<ChokePoint> chokePoints)
9074
super.chokePoints.addAll(chokePoints);
9175
}
9276

93-
public void addMineral(final Mineral mineral) {
77+
void addMineral(final Mineral mineral) {
9478
if (!(mineral != null && !super.minerals.contains(mineral))) {
9579
throw new IllegalStateException();
9680
}
9781
super.minerals.add(mineral);
9882
}
9983

100-
public void addGeyser(final Geyser geyser) {
84+
void addGeyser(final Geyser geyser) {
10185
if (!(geyser != null && !super.geysers.contains(geyser))) {
10286
throw new IllegalStateException();
10387
}
10488
super.geysers.add(geyser);
10589
}
10690

107-
public void addTileInformation(final TilePosition tilePosition, final Tile tile) {
91+
void addTileInformation(final TilePosition tilePosition, final Tile tile) {
10892
++super.tileCount;
10993

11094
if (tile.isBuildable()) {
@@ -131,11 +115,11 @@ public void addTileInformation(final TilePosition tilePosition, final Tile tile)
131115
}
132116
}
133117

134-
public void setGroupId(int gid) {
118+
void setGroupId(int gid) {
135119
super.groupId = gid;
136120
}
137121

138-
public int[] computeDistances(final ChokePoint startCP, final List<ChokePoint> targetCPs) {
122+
int[] computeDistances(final ChokePoint startCP, final List<ChokePoint> targetCPs) {
139123
if (targetCPs.contains(startCP)) {
140124
throw new IllegalStateException();
141125
}
@@ -168,7 +152,7 @@ public int[] computeDistances(final ChokePoint startCP, final List<ChokePoint> t
168152
private int[] computeDistances(final TilePosition start, final List<TilePosition> targets) {
169153
final int[] distances = new int[targets.size()];
170154

171-
TileImpl.getStaticMarkable().unmarkAll();
155+
Tile.getStaticMarkable().unmarkAll();
172156

173157
final Queue<Pair<Integer, TilePosition>> toVisit =
174158
new PriorityQueue<>(
@@ -183,16 +167,16 @@ private int[] computeDistances(final TilePosition start, final List<TilePosition
183167
final int currentDist = distanceAndTilePosition.getLeft();
184168
final TilePosition current = distanceAndTilePosition.getRight();
185169
final Tile currentTile = this.map.getData().getTile(current, CheckMode.NO_CHECK);
186-
if (!(((TileImpl) currentTile).getInternalData() == currentDist)) {
170+
if (!(currentTile.getInternalData() == currentDist)) {
187171
throw new IllegalStateException(
188172
"currentTile.InternalData().intValue()="
189-
+ ((TileImpl) currentTile).getInternalData()
173+
+ currentTile.getInternalData()
190174
+ ", currentDist="
191175
+ currentDist);
192176
}
193-
((TileImpl) currentTile)
177+
currentTile
194178
.setInternalData(0); // resets Tile::m_internalData for future usage
195-
((TileImpl) currentTile).getMarkable().setMarked();
179+
currentTile.getMarkable().setMarked();
196180

197181
for (int i = 0; i < targets.size(); ++i) {
198182
if (current.equals(targets.get(i))) {
@@ -221,25 +205,25 @@ private int[] computeDistances(final TilePosition start, final List<TilePosition
221205
final TilePosition next = current.add(delta);
222206
if (this.map.getData().getMapData().isValid(next)) {
223207
final Tile nextTile = this.map.getData().getTile(next, CheckMode.NO_CHECK);
224-
if (((TileImpl) nextTile).getMarkable().isUnmarked()) {
225-
if (((TileImpl) nextTile).getInternalData()
208+
if (nextTile.getMarkable().isUnmarked()) {
209+
if (nextTile.getInternalData()
226210
!= 0) { // next already in toVisit
227211
if (newNextDist
228-
< ((TileImpl) nextTile)
212+
< nextTile
229213
.getInternalData()) { // nextNewDist < nextOldDist
230214
// To update next's distance, we need to remove-insert it from toVisit:
231215
final boolean removed =
232216
toVisit.remove(
233-
new Pair<>(((TileImpl) nextTile).getInternalData(), next));
217+
new Pair<>(nextTile.getInternalData(), next));
234218
if (!removed) {
235219
throw new IllegalStateException();
236220
}
237-
((TileImpl) nextTile).setInternalData(newNextDist);
221+
nextTile.setInternalData(newNextDist);
238222
toVisit.offer(new Pair<>(newNextDist, next));
239223
}
240224
} else if ((nextTile.getAreaId().equals(getId()))
241225
|| (nextTile.getAreaId().equals(UNINITIALIZED))) {
242-
((TileImpl) nextTile).setInternalData(newNextDist);
226+
nextTile.setInternalData(newNextDist);
243227
toVisit.offer(new Pair<>(newNextDist, next));
244228
}
245229
}
@@ -252,17 +236,16 @@ private int[] computeDistances(final TilePosition start, final List<TilePosition
252236
}
253237

254238
for (final Pair<Integer, TilePosition> distanceAndTilePosition : toVisit) {
255-
final TileImpl tileToUpdate =
256-
((TileImpl)
239+
final Tile tileToUpdate =
257240
this.map.getData()
258-
.getTile(distanceAndTilePosition.getRight(), CheckMode.NO_CHECK));
241+
.getTile(distanceAndTilePosition.getRight(), CheckMode.NO_CHECK);
259242
tileToUpdate.setInternalData(0);
260243
}
261244

262245
return distances;
263246
}
264247

265-
public void updateAccessibleNeighbors() {
248+
void updateAccessibleNeighbors() {
266249
super.accessibleNeighbors.clear();
267250
for (final Area area : getChokePointsByArea().keySet()) {
268251
for (final ChokePoint cp : getChokePointsByArea().get(area)) {
@@ -274,7 +257,7 @@ public void updateAccessibleNeighbors() {
274257
}
275258
}
276259

277-
public void createBases(final TerrainData terrainData) {
260+
void createBases(final TerrainData terrainData) {
278261
final TilePosition resourceDepotDimensions = UnitType.Terran_Command_Center.tileSize();
279262

280263
final List<Resource> remainingResources = new ArrayList<>();
@@ -373,8 +356,8 @@ public void createBases(final TerrainData terrainData) {
373356
}
374357
if (tile.getAreaId().equals(getId())) {
375358
// note the additive effect (assume tile.InternalData() is 0 at the beginning)
376-
((TileImpl) tile)
377-
.setInternalData(((TileImpl) tile).getInternalData() + score);
359+
tile
360+
.setInternalData(tile.getInternalData() + score);
378361
}
379362
}
380363
}
@@ -390,7 +373,7 @@ public void createBases(final TerrainData terrainData) {
390373
if (terrainData.getMapData().isValid(deltaTilePosition)) {
391374
final Tile tileToUpdate = terrainData
392375
.getTile(deltaTilePosition, CheckMode.NO_CHECK);
393-
((TileImpl) tileToUpdate).setInternalData(-1);
376+
tileToUpdate.setInternalData(-1);
394377
}
395378
}
396379
}
@@ -440,7 +423,7 @@ public void createBases(final TerrainData terrainData) {
440423
if (terrainData.getMapData().isValid(deltaTilePosition)) {
441424
final Tile tileToUpdate = terrainData
442425
.getTile(deltaTilePosition, CheckMode.NO_CHECK);
443-
((TileImpl) tileToUpdate).setInternalData(0);
426+
tileToUpdate.setInternalData(0);
444427
}
445428
}
446429
}
@@ -485,7 +468,7 @@ private int computeBaseLocationScore(final TerrainData terrainData,
485468
if (!tile.isBuildable()) {
486469
return -1;
487470
}
488-
if (((TileImpl) tile).getInternalData() == -1) {
471+
if (tile.getInternalData() == -1) {
489472
// The special value InternalData() == -1 means there is some resource at maximum 3 tiles,
490473
// which Starcraft rules forbid.
491474
// Unfortunately, this is guaranteed only for the resources in this Area, which is the
@@ -499,7 +482,7 @@ private int computeBaseLocationScore(final TerrainData terrainData,
499482
return -1;
500483
}
501484

502-
sumScore += ((TileImpl) tile).getInternalData();
485+
sumScore += tile.getInternalData();
503486
}
504487
}
505488

src/main/java/bwem/BWEM.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
package bwem;
1414

1515
import bwapi.Game;
16-
import bwem.map.Map;
17-
import bwem.map.MapInitializer;
1816

1917
public final class BWEM {
2018
private final Map map;

src/main/java/bwem/Base.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@
1515
import bwapi.Position;
1616
import bwapi.TilePosition;
1717
import bwapi.UnitType;
18-
import bwem.area.Area;
19-
import bwem.map.MapData;
20-
import bwem.unit.Geyser;
21-
import bwem.unit.Mineral;
22-
import bwem.unit.Neutral;
23-
import bwem.unit.Resource;
2418
import bwem.util.BwemExt;
2519

2620
import java.util.ArrayList;
@@ -43,7 +37,7 @@ public class Base {
4337
private Position center;
4438
private boolean isStartingLocation = false;
4539

46-
public Base(
40+
Base(
4741
final Area area,
4842
final TilePosition location,
4943
final List<Resource> assignedResources,
@@ -130,19 +124,18 @@ public List<Geyser> getGeysers() {
130124
* - Fortunately, these are guaranteed to have their initialAmount() <= 8.<br>
131125
* - As an example of blocking minerals, see the two islands in Andromeda.scx.<br>
132126
* - Note: if {@link #isStartingLocation()} == true, an empty list is returned.<br>
133-
* - Note: {@link #getBlockingMinerals()} should not be confused with {@link
134-
* ChokePoint#getBlockingNeutral()} and {@link Neutral#isBlocking()}:<br>
127+
* - Note: should not be confused with {@link ChokePoint#getBlockingNeutral()}
128+
* and {@link Neutral#isBlocking()}:<br>
135129
* The last two refer to a Neutral blocking a ChokePoint, not a Base.
136130
*/
137131
public List<Mineral> getBlockingMinerals() {
138132
return this.blockingMinerals;
139133
}
140134

141-
public void assignStartingLocation(final TilePosition actualLocation) {
135+
void assignStartingLocation(final TilePosition actualLocation) {
142136
this.isStartingLocation = true;
143137
this.location = actualLocation;
144-
this.center =
145-
BwemExt.centerOfBuilding(actualLocation, UnitType.Terran_Command_Center.tileSize());
138+
this.center = BwemExt.centerOfBuilding(actualLocation, UnitType.Terran_Command_Center.tileSize());
146139
}
147140

148141
public void onMineralDestroyed(final Mineral mineral) {
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
//
1111
//////////////////////////////////////////////////////////////////////////
1212

13-
package bwem.typedef;
14-
15-
import bwem.ChokePoint;
13+
package bwem;
1614

1715
import java.util.ArrayList;
1816
import java.util.Iterator;

src/main/java/bwem/ChokePoint.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414

1515
import bwapi.Pair;
1616
import bwapi.WalkPosition;
17-
import bwem.area.Area;
18-
import bwem.map.Map;
19-
import bwem.tile.MiniTile;
20-
import bwem.tile.MiniTileImpl;
21-
import bwem.typedef.CPPath;
22-
import bwem.unit.Neutral;
17+
import bwem.util.CheckMode;
18+
2319
import java.util.ArrayList;
2420
import java.util.List;
2521
import java.util.Objects;
@@ -121,7 +117,7 @@ > getMap().getData().getMiniTile(geometry.get(i)).getAltitude().intValue())) {
121117
(MiniTile miniTile, WalkPosition w) -> (
122118
miniTile.getAreaId().equals(area.getId())
123119
|| (isBlocked()
124-
&& (((MiniTileImpl) miniTile).isBlocked()
120+
&& (miniTile.isBlocked()
125121
|| map.getData()
126122
.getTile(w.toTilePosition(), CheckMode.NO_CHECK)
127123
.getNeutral() != null))));
@@ -277,7 +273,7 @@ public CPPath getPathTo(final ChokePoint cp) {
277273
return getGraph().getPath(this, cp);
278274
}
279275

280-
public void onBlockingNeutralDestroyed(final Neutral pBlocking) {
276+
void onBlockingNeutralDestroyed(final Neutral pBlocking) {
281277
if (!(pBlocking != null && pBlocking.isBlocking())) {
282278
throw new IllegalStateException();
283279
}

0 commit comments

Comments
 (0)