Skip to content

Commit 4b54cef

Browse files
committed
Add islands.json support
1 parent a9bdc61 commit 4b54cef

File tree

3 files changed

+94
-9
lines changed

3 files changed

+94
-9
lines changed

src/main/java/io/github/moulberry/repo/NEUConstants.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,18 @@
1111
import java.util.List;
1212
import java.util.Map;
1313

14+
@Getter
1415
public class NEUConstants implements IReloadable {
15-
@Getter
1616
Bonuses bonuses;
17-
@Getter
1817
Parents parents;
19-
@Getter
2018
Enchants enchants;
21-
@Getter
2219
EssenceCosts essenceCost;
23-
@Getter
2420
FairySouls fairySouls;
25-
@Getter
2621
Misc misc;
27-
@Getter
2822
Leveling leveling;
29-
@Getter
3023
PetLevelingData petLevelingData;
31-
@Getter
3224
Map<@PetId String, Map<Rarity, PetNumbers>> petNumbers;
25+
Islands islands;
3326

3427
public void reload(NEURepository repository) throws NEURepositoryException {
3528
bonuses = repository.requireFile("constants/bonuses.json").json(Bonuses.class);
@@ -45,6 +38,8 @@ public void reload(NEURepository repository) throws NEURepositoryException {
4538
petLevelingData = repository.requireFile("constants/pets.json").json(PetLevelingData.class);
4639
petNumbers = repository.requireFile("constants/petnums.json").json(new TypeToken<Map<@PetId String, Map<Rarity, PetNumbers>>>() {
4740
});
41+
NEURepoFile islandsFile = repository.file("constants/islands.json");
42+
islands = islandsFile != null ? islandsFile.json(Islands.class) : new Islands();
4843
}
4944

5045

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package io.github.moulberry.repo.constants;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
import lombok.ToString;
8+
import org.jetbrains.annotations.NotNull;
9+
import org.jetbrains.annotations.Unmodifiable;
10+
11+
import java.util.ArrayList;
12+
import java.util.HashMap;
13+
import java.util.List;
14+
import java.util.Map;
15+
16+
@Getter
17+
@ToString
18+
public class Islands {
19+
/**
20+
* User friendly names from {@code /locraw} names
21+
*/
22+
@SerializedName("area_names")
23+
@Unmodifiable Map<@NotNull String, @NotNull String> areaNames = new HashMap<>();
24+
25+
/**
26+
* List of portals
27+
*/
28+
@Unmodifiable @NotNull List<@NotNull Teleporter> teleporters = new ArrayList<>();
29+
30+
/**
31+
* List of /warp exit points
32+
*/
33+
@SerializedName("island_warps")
34+
@Unmodifiable @NotNull List<@NotNull Warp> warps = new ArrayList<>();
35+
36+
@Getter
37+
@ToString
38+
@AllArgsConstructor
39+
@NoArgsConstructor
40+
public static class Warp {
41+
/**
42+
* Name of this warp in `/warp`
43+
*/
44+
@NotNull String warp;
45+
/**
46+
* Alia
47+
*/
48+
@NotNull @Unmodifiable List<@NotNull String> aliases = new ArrayList<>();
49+
/**
50+
* The target island as a {@code /locraw} name
51+
*/
52+
@NotNull String mode;
53+
/**
54+
* Coordinates of the target location
55+
*/
56+
float x, y, z;
57+
}
58+
59+
@Getter
60+
@ToString
61+
@AllArgsConstructor
62+
@NoArgsConstructor
63+
public static class Teleporter {
64+
/**
65+
* Coordinates of the teleporter on the entry side
66+
*/
67+
float x, y, z;
68+
/**
69+
* {@code /locraw} name of the entry side of the teleporter
70+
*/
71+
@NotNull String from;
72+
/**
73+
* {@code /locraw} name of the exit side of the teleporter
74+
*/
75+
@NotNull String to;
76+
}
77+
}
78+

src/test/java/TestMain.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.github.moulberry.repo.data.Rarity;
99

1010
import java.nio.file.Paths;
11+
import java.util.Arrays;
1112
import java.util.stream.Collectors;
1213
import java.util.stream.Stream;
1314

@@ -24,6 +25,17 @@ public static void main(String[] args) throws NEURepositoryException {
2425
.filter(it -> it instanceof NEUUnknownRecipe).map(it -> (NEUUnknownRecipe) it)
2526
.map(NEUUnknownRecipe::getType)
2627
.collect(Collectors.toSet()));
28+
System.out.println("all characters used for ids: " + repository.getItems().getItems().keySet().stream()
29+
.flatMap(it -> Arrays.stream(it.split("")))
30+
.collect(Collectors.toSet()));
31+
repository.getConstants().getIslands().getWarps().forEach(it -> {
32+
System.out.println("Warp:");
33+
System.out.println(" To: " + it.getMode() + " (" + it.getX() + " " + it.getY() + " " + it.getZ() + ")");
34+
System.out.println(" Using: " + it.getWarp());
35+
for (String alias : it.getAliases()) {
36+
System.out.println(" Using: " + alias);
37+
}
38+
});
2739
System.out.println("pet exp type for ROCK: " + repository.getConstants().getPetLevelingData().getPetExpTypes().get("ROCK"));
2840
System.out.println("stats of level 1 legendary sheep " + repository.getConstants().getPetNumbers().get("SHEEP").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(1));
2941
System.out.println("stats of level 150 golden dragon " + repository.getConstants().getPetNumbers().get("GOLDEN_DRAGON").get(Rarity.LEGENDARY).interpolatedStatsAtLevel(150));

0 commit comments

Comments
 (0)