Skip to content

Commit 2d37d49

Browse files
committed
use arrays for accesing types for faster acces time
1 parent 976ebac commit 2d37d49

File tree

11 files changed

+44
-22
lines changed

11 files changed

+44
-22
lines changed

src/main/java/bwapi/Bullet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public Player getPlayer() {
2626
}
2727

2828
public BulletType getType() {
29-
return BulletType.bulletTypes.get(bulletData.type());
29+
return BulletType.bulletTypes[bulletData.type()];
3030
}
3131

3232
public Unit getSource() {

src/main/java/bwapi/Game.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public Region getRegion(final int regionID) {
113113
}
114114

115115
public GameType getGameType() {
116-
return GameType.gameTypes.get(gameData.gameType());
116+
return GameType.gameTypes[gameData.gameType()];
117117
}
118118

119119
public int getLatency() {

src/main/java/bwapi/Unit.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,11 +325,11 @@ public List<UnitType> getTrainingQueue() {
325325
}
326326

327327
public TechType getTech() {
328-
return TechType.techTypes.get(unitData.tech());
328+
return TechType.techTypes[unitData.tech()];
329329
}
330330

331331
public UpgradeType getUpgrade() {
332-
return UpgradeType.upgradeTypes.get(unitData.upgrade());
332+
return UpgradeType.upgradeTypes[unitData.upgrade()];
333333
}
334334

335335
public int getRemainingBuildTime() {

src/main/java/bwapi/types/BulletType.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ public enum BulletType {
5151
None(209),
5252
Unknown(210);
5353

54-
public static Map<Integer, BulletType> bulletTypes = Arrays.stream(BulletType.values())
55-
.collect(Collectors.toMap(v-> v.id, v -> v));
56-
54+
public static BulletType[] bulletTypes = new BulletType[210+1];
55+
static {
56+
Arrays.stream(BulletType.values()).forEach(v -> bulletTypes[v.id] = v);
57+
}
5758

5859
private int id;
5960

src/main/java/bwapi/types/GameType.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,11 @@ public enum GameType {
2626
Pro_Gamer_League(32), // Not valid
2727
Unknown(33);
2828

29-
public static Map<Integer, GameType> gameTypes = Arrays.stream(GameType.values())
30-
.collect(Collectors.toMap(v-> v.id, v -> v));
29+
public static GameType[] gameTypes = new GameType[33+1];
30+
static {
31+
Arrays.stream(GameType.values()).forEach(v -> gameTypes[v.id] = v);
32+
}
33+
3134

3235
private int id;
3336

src/main/java/bwapi/types/Order.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package bwapi.types;
22

3+
import java.util.Arrays;
4+
35
public enum Order {
46
Die(0),
57
Stop(1),
@@ -193,7 +195,11 @@ public enum Order {
193195
None(189),
194196
Unknown(190);
195197

196-
public static Order[] orders = Order.values();
198+
public static Order[] orders = new Order[190+1];
199+
static {
200+
Arrays.stream(Order.values()).forEach(v -> orders[v.id] = v);
201+
}
202+
197203

198204
private int id;
199205

src/main/java/bwapi/types/PlayerType.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package bwapi.types;
22

3+
import java.util.Arrays;
4+
35
public enum PlayerType {
46
None(0),
57
Computer(1),
@@ -15,10 +17,10 @@ public enum PlayerType {
1517
ComputerLeft(11),
1618
Unknown(12);
1719

18-
public static PlayerType[] playerTypes = {
19-
None, Computer, Player, RescuePassive, RescueActive, EitherPreferComputer,
20-
EitherPreferHuman, Neutral, Closed, Observer, PlayerLeft, ComputerLeft, Unknown
21-
};
20+
public static PlayerType[] playerTypes = new PlayerType[12+1];
21+
static {
22+
Arrays.stream(PlayerType.values()).forEach(v -> playerTypes[v.id] = v);
23+
}
2224

2325
private int id;
2426

src/main/java/bwapi/types/Race.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package bwapi.types;
22

33

4+
import java.util.Arrays;
5+
46
import static bwapi.types.UnitType.*;
57

68
public enum Race{
@@ -14,9 +16,10 @@ public enum Race{
1416
None(7),
1517
Unknown(8);
1618

17-
public static Race[] races = {
18-
Zerg, Terran, Protoss, Other, Unused, Select, Random, None, Unknown
19-
};
19+
public static Race[] races = new Race[8+1];
20+
static {
21+
Arrays.stream(Race.values()).forEach(v -> races[v.id] = v);
22+
}
2023

2124
public final int id;
2225

src/main/java/bwapi/types/TechType.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ public enum TechType {
4949
Nuclear_Strike(45),
5050
Unknown(46);
5151

52-
public static Map<Integer, TechType> techTypes = Arrays.stream(TechType.values())
53-
.collect(Collectors.toMap(v-> v.id, v -> v));
52+
public static TechType[] techTypes = new TechType[46+1];
53+
static {
54+
Arrays.stream(TechType.values()).forEach(v -> techTypes[v.id] = v);
55+
}
5456

5557
public final int id;
5658

src/main/java/bwapi/types/UnitType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,10 @@ public enum UnitType {
245245
Factories(232),
246246
Unknown(233);
247247

248-
public static UnitType[] unitTypes = UnitType.values(); //should be in order of declaration
248+
public static UnitType[] unitTypes = new UnitType[233+1];
249+
static {
250+
Arrays.stream(UnitType.values()).forEach(v -> unitTypes[v.id] = v);
251+
}
249252

250253
public final int id;
251254

0 commit comments

Comments
 (0)