Skip to content

Commit e965b7c

Browse files
Refac Tengen 2D rendering
1 parent 212f74c commit e965b7c

File tree

5 files changed

+115
-128
lines changed

5 files changed

+115
-128
lines changed

pacman-app-tengen-mspacman/src/main/java/de/amr/pacmanfx/tengen/ms_pacman/model/TengenMsPacMan_MapRepository.java

Lines changed: 78 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.util.*;
1919

20-
import static de.amr.pacmanfx.Globals.TS;
2120
import static de.amr.pacmanfx.uilib.Ufx.exchangeNES_ColorScheme;
2221
import static java.util.Objects.requireNonNull;
2322

@@ -31,52 +30,43 @@
3130
*/
3231
public class TengenMsPacMan_MapRepository implements Disposable {
3332

34-
private record CacheKey(MapCategory mapCategory, int spriteNumber, NES_ColorScheme colorScheme) {}
33+
private record CacheKey(MapCategory mapCategory, Object mazeID, NES_ColorScheme colorScheme) {}
3534

36-
// Map row counts as they appear in the non-ARCADE mazes sprite sheet (row by row)
37-
private static final byte[] NON_ARCADE_MAP_ROW_COUNTS = {
38-
31, 31, 31, 31, 31, 31, 30, 31,
39-
31, 37, 31, 31, 31, 37, 31, 25,
40-
37, 31, 37, 37, 37, 37, 37, 31,
41-
37, 37, 31, 25, 31, 25, 31, 31, 37,
42-
25, 25, 25, 25,
43-
};
44-
45-
private static NES_ColorScheme colorSchemeFromNonArcadeMapsSpriteSheet(int spriteNumber){
46-
return switch (spriteNumber) {
47-
case 1 -> NES_ColorScheme._36_15_20_PINK_RED_WHITE;
48-
case 2 -> NES_ColorScheme._21_20_28_BLUE_WHITE_YELLOW;
49-
case 3 -> NES_ColorScheme._16_20_15_ORANGE_WHITE_RED;
50-
case 4 -> NES_ColorScheme._01_38_20_BLUE_YELLOW_WHITE;
51-
case 5 -> NES_ColorScheme._35_28_20_PINK_YELLOW_WHITE;
52-
case 6 -> NES_ColorScheme._36_15_20_PINK_RED_WHITE;
53-
case 7 -> NES_ColorScheme._17_20_20_BROWN_WHITE_WHITE;
54-
case 8 -> NES_ColorScheme._13_20_28_VIOLET_WHITE_YELLOW;
55-
case 9 -> NES_ColorScheme._0F_20_28_BLACK_WHITE_YELLOW;
56-
case 10 -> NES_ColorScheme._0F_01_20_BLACK_BLUE_WHITE;
57-
case 11 -> NES_ColorScheme._14_25_20_VIOLET_ROSE_WHITE;
58-
case 12 -> NES_ColorScheme._15_20_20_RED_WHITE_WHITE;
59-
case 13 -> NES_ColorScheme._1B_20_20_GREEN_WHITE_WHITE;
60-
case 14 -> NES_ColorScheme._28_20_2A_YELLOW_WHITE_GREEN;
61-
case 15 -> NES_ColorScheme._1A_20_28_GREEN_WHITE_YELLOW;
62-
case 16 -> NES_ColorScheme._18_20_20_KHAKI_WHITE_WHITE;
63-
case 17 -> NES_ColorScheme._25_20_20_ROSE_WHITE_WHITE;
64-
case 18 -> NES_ColorScheme._12_20_28_BLUE_WHITE_YELLOW;
65-
case 19 -> NES_ColorScheme._07_20_20_BROWN_WHITE_WHITE;
66-
case 20 -> NES_ColorScheme._15_25_20_RED_ROSE_WHITE;
67-
case 21 -> NES_ColorScheme._0F_20_1C_BLACK_WHITE_GREEN;
68-
case 22 -> NES_ColorScheme._19_20_20_GREEN_WHITE_WHITE;
69-
case 23 -> NES_ColorScheme._0C_20_14_GREEN_WHITE_VIOLET;
70-
case 24 -> NES_ColorScheme._23_20_2B_VIOLET_WHITE_GREEN;
71-
case 25 -> NES_ColorScheme._10_20_28_GRAY_WHITE_YELLOW;
72-
case 26 -> NES_ColorScheme._03_20_20_BLUE_WHITE_WHITE;
73-
case 27 -> NES_ColorScheme._04_20_20_VIOLET_WHITE_WHITE;
74-
case 28 -> NES_ColorScheme._00_2A_24_GRAY_GREEN_PINK;
75-
case 29 -> NES_ColorScheme._21_35_20_BLUE_PINK_WHITE;
76-
case 30 -> NES_ColorScheme._28_16_20_YELLOW_RED_WHITE;
77-
case 31 -> NES_ColorScheme._12_16_20_BLUE_RED_WHITE;
78-
case 32 -> NES_ColorScheme._15_25_20_RED_ROSE_WHITE;
79-
default -> throw new IllegalArgumentException("Illegal sprite number: " + spriteNumber);
35+
private static NES_ColorScheme colorSchemeFromNonArcadeMapsSpriteSheet(NonArcadeMapsSpriteSheet.MazeID mazeID){
36+
return switch (mazeID) {
37+
case MAZE1 -> NES_ColorScheme._36_15_20_PINK_RED_WHITE;
38+
case MAZE2 -> NES_ColorScheme._21_20_28_BLUE_WHITE_YELLOW;
39+
case MAZE3 -> NES_ColorScheme._16_20_15_ORANGE_WHITE_RED;
40+
case MAZE4 -> NES_ColorScheme._01_38_20_BLUE_YELLOW_WHITE;
41+
case MAZE5 -> NES_ColorScheme._35_28_20_PINK_YELLOW_WHITE;
42+
case MAZE6 -> NES_ColorScheme._36_15_20_PINK_RED_WHITE;
43+
case MAZE7 -> NES_ColorScheme._17_20_20_BROWN_WHITE_WHITE;
44+
case MAZE8 -> NES_ColorScheme._13_20_28_VIOLET_WHITE_YELLOW;
45+
case MAZE9 -> NES_ColorScheme._0F_20_28_BLACK_WHITE_YELLOW;
46+
case MAZE10_BIG -> NES_ColorScheme._0F_01_20_BLACK_BLUE_WHITE;
47+
case MAZE11 -> NES_ColorScheme._14_25_20_VIOLET_ROSE_WHITE;
48+
case MAZE12 -> NES_ColorScheme._15_20_20_RED_WHITE_WHITE;
49+
case MAZE13 -> NES_ColorScheme._1B_20_20_GREEN_WHITE_WHITE;
50+
case MAZE14_BIG -> NES_ColorScheme._28_20_2A_YELLOW_WHITE_GREEN;
51+
case MAZE15 -> NES_ColorScheme._1A_20_28_GREEN_WHITE_YELLOW;
52+
case MAZE16_MINI -> NES_ColorScheme._18_20_20_KHAKI_WHITE_WHITE;
53+
case MAZE17_BIG -> NES_ColorScheme._25_20_20_ROSE_WHITE_WHITE;
54+
case MAZE18 -> NES_ColorScheme._12_20_28_BLUE_WHITE_YELLOW;
55+
case MAZE19_BIG -> NES_ColorScheme._07_20_20_BROWN_WHITE_WHITE;
56+
case MAZE20_BIG -> NES_ColorScheme._15_25_20_RED_ROSE_WHITE;
57+
case MAZE21_BIG -> NES_ColorScheme._0F_20_1C_BLACK_WHITE_GREEN;
58+
case MAZE22_BIG -> NES_ColorScheme._19_20_20_GREEN_WHITE_WHITE;
59+
case MAZE23_BIG -> NES_ColorScheme._0C_20_14_GREEN_WHITE_VIOLET;
60+
case MAZE24 -> NES_ColorScheme._23_20_2B_VIOLET_WHITE_GREEN;
61+
case MAZE25_BIG -> NES_ColorScheme._10_20_28_GRAY_WHITE_YELLOW;
62+
case MAZE26_BIG -> NES_ColorScheme._03_20_20_BLUE_WHITE_WHITE;
63+
case MAZE27 -> NES_ColorScheme._04_20_20_VIOLET_WHITE_WHITE;
64+
case MAZE28_MINI -> NES_ColorScheme._00_2A_24_GRAY_GREEN_PINK;
65+
case MAZE29 -> NES_ColorScheme._21_35_20_BLUE_PINK_WHITE;
66+
case MAZE30_MINI -> NES_ColorScheme._28_16_20_YELLOW_RED_WHITE;
67+
case MAZE31 -> NES_ColorScheme._12_16_20_BLUE_RED_WHITE;
68+
case MAZE32_ANIMATED -> NES_ColorScheme._15_25_20_RED_ROSE_WHITE;
69+
default -> throw new IllegalArgumentException("Illegal non-Arcade maze ID: " + mazeID);
8070
};
8171
}
8272

@@ -125,7 +115,7 @@ public ColoredMazeSpriteSet createMazeSpriteSet(WorldMap worldMap, int flashCoun
125115
case MINI -> miniMazeSpriteSet(mapNumber, nesColorScheme, flashCount, multipleFlashColors);
126116
case BIG -> bigMazeSpriteSet(mapNumber, nesColorScheme, flashCount, multipleFlashColors);
127117
case STRANGE -> strangeMazeSpriteSet(
128-
worldMap.getConfigValue("levelNumber"),
118+
worldMap.getConfigValue("mazeID"), // set by map selector!
129119
multipleFlashColors ? worldMap.getConfigValue("nesColorScheme") : null,
130120
flashCount,
131121
multipleFlashColors);
@@ -166,13 +156,13 @@ private ColoredMazeSpriteSet arcadeMazeSpriteSet(int mapNumber, NES_ColorScheme
166156
private ColoredMazeSpriteSet miniMazeSpriteSet(
167157
int mapNumber, NES_ColorScheme colorScheme, int flashCount, boolean multipleFlashColors)
168158
{
169-
int spriteNumber = switch (mapNumber) {
170-
case 1 -> 34;
171-
case 2 -> 35;
172-
case 3 -> 36;
173-
case 4 -> 30;
174-
case 5 -> 28;
175-
case 6 -> 37;
159+
NonArcadeMapsSpriteSheet.MazeID mazeID = switch (mapNumber) {
160+
case 1 -> NonArcadeMapsSpriteSheet.MazeID.MAZE34_MINI;
161+
case 2 -> NonArcadeMapsSpriteSheet.MazeID.MAZE35_MINI;
162+
case 3 -> NonArcadeMapsSpriteSheet.MazeID.MAZE36_MINI;
163+
case 4 -> NonArcadeMapsSpriteSheet.MazeID.MAZE30_MINI;
164+
case 5 -> NonArcadeMapsSpriteSheet.MazeID.MAZE28_MINI;
165+
case 6 -> NonArcadeMapsSpriteSheet.MazeID.MAZE37_MINI;
176166
default -> throw new IllegalArgumentException("Illegal MINI map number: " + mapNumber);
177167
};
178168
NES_ColorScheme availableColorScheme = switch (mapNumber) {
@@ -184,20 +174,20 @@ private ColoredMazeSpriteSet miniMazeSpriteSet(
184174
case 6 -> NES_ColorScheme._23_20_2B_VIOLET_WHITE_GREEN;
185175
default -> null;
186176
};
187-
RectShort originalMazeSprite = nonArcadeMazesSprite(spriteNumber);
177+
RectShort originalMazeSprite = nonArcadeMazesSpriteSheet.sprite(mazeID);
188178
RecoloredSpriteImage mazeSprite = colorScheme.equals(availableColorScheme)
189-
? new RecoloredSpriteImage(nonArcadeMazesSpriteSheet.sourceImage(), nonArcadeMazesSprite(spriteNumber), colorScheme)
190-
: recoloredMazeImage(MapCategory.MINI, spriteNumber, originalMazeSprite, colorScheme, availableColorScheme);
179+
? new RecoloredSpriteImage(nonArcadeMazesSpriteSheet.sourceImage(), originalMazeSprite, colorScheme)
180+
: recoloredMazeImage(MapCategory.MINI, mazeID, originalMazeSprite, colorScheme, availableColorScheme);
191181

192182
var flashingMazeSprites = new ArrayList<RecoloredSpriteImage>();
193183
if (multipleFlashColors) {
194184
for (var randomScheme : randomColorSchemes(flashCount, colorScheme)) {
195-
RecoloredSpriteImage randomMazeSprite = recoloredMazeImage(MapCategory.MINI, spriteNumber, originalMazeSprite,
185+
RecoloredSpriteImage randomMazeSprite = recoloredMazeImage(MapCategory.MINI, mazeID, originalMazeSprite,
196186
randomScheme, availableColorScheme);
197187
flashingMazeSprites.add(randomMazeSprite);
198188
}
199189
} else {
200-
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.MINI, spriteNumber, originalMazeSprite,
190+
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.MINI, mazeID, originalMazeSprite,
201191
NES_ColorScheme._0F_20_0F_BLACK_WHITE_BLACK, availableColorScheme);
202192
for (int i = 0; i < flashCount; ++i) {
203193
flashingMazeSprites.add(blackWhiteMazeSprite);
@@ -207,20 +197,19 @@ private ColoredMazeSpriteSet miniMazeSpriteSet(
207197
}
208198

209199
private ColoredMazeSpriteSet bigMazeSpriteSet(
210-
int mapNumber, NES_ColorScheme colorScheme, int flashCount, boolean multipleFlashColors)
211-
{
212-
int spriteNumber = switch (mapNumber) {
213-
case 1 -> 19;
214-
case 2 -> 20;
215-
case 3 -> 21;
216-
case 4 -> 22;
217-
case 5 -> 23;
218-
case 6 -> 17;
219-
case 7 -> 10;
220-
case 8 -> 14;
221-
case 9 -> 26;
222-
case 10 -> 25;
223-
case 11 -> 33;
200+
int mapNumber, NES_ColorScheme colorScheme, int flashCount, boolean multipleFlashColors) {
201+
NonArcadeMapsSpriteSheet.MazeID mazeID = switch (mapNumber) {
202+
case 1 -> NonArcadeMapsSpriteSheet.MazeID.MAZE19_BIG;
203+
case 2 -> NonArcadeMapsSpriteSheet.MazeID.MAZE20_BIG;
204+
case 3 -> NonArcadeMapsSpriteSheet.MazeID.MAZE21_BIG;
205+
case 4 -> NonArcadeMapsSpriteSheet.MazeID.MAZE22_BIG;
206+
case 5 -> NonArcadeMapsSpriteSheet.MazeID.MAZE23_BIG;
207+
case 6 -> NonArcadeMapsSpriteSheet.MazeID.MAZE17_BIG;
208+
case 7 -> NonArcadeMapsSpriteSheet.MazeID.MAZE10_BIG;
209+
case 8 -> NonArcadeMapsSpriteSheet.MazeID.MAZE14_BIG;
210+
case 9 -> NonArcadeMapsSpriteSheet.MazeID.MAZE26_BIG;
211+
case 10 -> NonArcadeMapsSpriteSheet.MazeID.MAZE25_BIG;
212+
case 11 -> NonArcadeMapsSpriteSheet.MazeID.MAZE33_BIG;
224213
default -> throw new IllegalArgumentException("Illegal BIG map number: " + mapNumber);
225214
};
226215
NES_ColorScheme colorSchemeInSpriteSheet = switch (mapNumber) {
@@ -237,20 +226,20 @@ private ColoredMazeSpriteSet bigMazeSpriteSet(
237226
case 11 -> NES_ColorScheme._15_25_20_RED_ROSE_WHITE;
238227
default -> null;
239228
};
240-
RectShort originalMazeSprite = nonArcadeMazesSprite(spriteNumber);
229+
RectShort originalMazeSprite = nonArcadeMazesSpriteSheet.sprite(mazeID);
241230
RecoloredSpriteImage mazeSprite = colorScheme.equals(colorSchemeInSpriteSheet)
242-
? new RecoloredSpriteImage(nonArcadeMazesSpriteSheet.sourceImage(), nonArcadeMazesSprite(spriteNumber), colorScheme)
243-
: recoloredMazeImage(MapCategory.BIG, spriteNumber, originalMazeSprite, colorScheme, colorSchemeInSpriteSheet);
231+
? new RecoloredSpriteImage(nonArcadeMazesSpriteSheet.sourceImage(), originalMazeSprite, colorScheme)
232+
: recoloredMazeImage(MapCategory.BIG, mazeID, originalMazeSprite, colorScheme, colorSchemeInSpriteSheet);
244233

245234
var flashingMazeSprites = new ArrayList<RecoloredSpriteImage>();
246235
if (multipleFlashColors) {
247236
for (var randomScheme : randomColorSchemes(flashCount, colorScheme)) {
248-
RecoloredSpriteImage randomColorMazeSprite = recoloredMazeImage(MapCategory.BIG, spriteNumber, originalMazeSprite,
237+
RecoloredSpriteImage randomColorMazeSprite = recoloredMazeImage(MapCategory.BIG, mazeID, originalMazeSprite,
249238
randomScheme, colorSchemeInSpriteSheet);
250239
flashingMazeSprites.add(randomColorMazeSprite);
251240
}
252241
} else {
253-
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.BIG, spriteNumber, originalMazeSprite,
242+
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.BIG, mazeID, originalMazeSprite,
254243
NES_ColorScheme._0F_20_0F_BLACK_WHITE_BLACK, colorSchemeInSpriteSheet);
255244
for (int i = 0; i < flashCount; ++i) {
256245
flashingMazeSprites.add(blackWhiteMazeSprite);
@@ -260,24 +249,26 @@ private ColoredMazeSpriteSet bigMazeSpriteSet(
260249
}
261250

262251
private ColoredMazeSpriteSet strangeMazeSpriteSet(
263-
int spriteNumber, NES_ColorScheme randomColorScheme, int flashCount, boolean multipleFlashColors)
252+
NonArcadeMapsSpriteSheet.MazeID mazeID, NES_ColorScheme randomColorScheme, int flashCount, boolean multipleFlashColors)
264253
{
265-
final RectShort originalMazeSprite = nonArcadeMazesSprite(spriteNumber);
266-
final NES_ColorScheme originalColorScheme = colorSchemeFromNonArcadeMapsSpriteSheet(spriteNumber);
254+
final RectShort originalMazeSprite = mazeID == NonArcadeMapsSpriteSheet.MazeID.MAZE32_ANIMATED
255+
? nonArcadeMazesSpriteSheet.spriteSequence(mazeID)[0]
256+
: nonArcadeMazesSpriteSheet.sprite(mazeID);
257+
final NES_ColorScheme originalColorScheme = colorSchemeFromNonArcadeMapsSpriteSheet(mazeID);
267258
final NES_ColorScheme requestedColorScheme = randomColorScheme != null ? randomColorScheme : originalColorScheme;
268259
final RecoloredSpriteImage mazeSprite = requestedColorScheme.equals(originalColorScheme)
269260
? new RecoloredSpriteImage(nonArcadeMazesSpriteSheet.sourceImage(), originalMazeSprite, originalColorScheme)
270-
: recoloredMazeImage(MapCategory.STRANGE, spriteNumber, originalMazeSprite, requestedColorScheme, originalColorScheme);
261+
: recoloredMazeImage(MapCategory.STRANGE, mazeID, originalMazeSprite, requestedColorScheme, originalColorScheme);
271262

272263
final var flashingMazeSprites = new ArrayList<RecoloredSpriteImage>();
273264
if (multipleFlashColors) {
274265
for (NES_ColorScheme colorScheme : randomColorSchemes(flashCount, requestedColorScheme)) {
275-
RecoloredSpriteImage randomColorMazeSprite = recoloredMazeImage(MapCategory.STRANGE, spriteNumber, originalMazeSprite,
266+
RecoloredSpriteImage randomColorMazeSprite = recoloredMazeImage(MapCategory.STRANGE, mazeID, originalMazeSprite,
276267
colorScheme, originalColorScheme);
277268
flashingMazeSprites.add(randomColorMazeSprite);
278269
}
279270
} else {
280-
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.STRANGE, spriteNumber, originalMazeSprite,
271+
RecoloredSpriteImage blackWhiteMazeSprite = recoloredMazeImage(MapCategory.STRANGE, mazeID, originalMazeSprite,
281272
NES_ColorScheme._0F_20_0F_BLACK_WHITE_BLACK, originalColorScheme);
282273
for (int i = 0; i < flashCount; ++i) {
283274
flashingMazeSprites.add(blackWhiteMazeSprite);
@@ -286,25 +277,11 @@ private ColoredMazeSpriteSet strangeMazeSpriteSet(
286277
return new ColoredMazeSpriteSet(mazeSprite, flashingMazeSprites);
287278
}
288279

289-
private RectShort nonArcadeMazesSprite(int spriteNumber) {
290-
int colIndex, y;
291-
switch (spriteNumber) {
292-
case 1,2,3,4,5,6,7,8 -> { colIndex = (spriteNumber - 1); y = 0; }
293-
case 9,10,11,12,13,14,15,16 -> { colIndex = (spriteNumber - 9); y = 248; }
294-
case 17,18,19,20,21,22,23,24 -> { colIndex = (spriteNumber - 17); y = 544; }
295-
case 25,26,27,28,29,30,31,32,33 -> { colIndex = (spriteNumber - 25); y = 840; }
296-
case 34,35,36,37 -> { colIndex = (spriteNumber - 34); y = 1136; }
297-
default -> throw new IllegalArgumentException("Illegal non-Arcade map number: " + spriteNumber);
298-
}
299-
int width = 28 * TS, height = NON_ARCADE_MAP_ROW_COUNTS[spriteNumber - 1] * TS;
300-
return new RectShort(colIndex * width, y, width, height);
301-
}
302-
303280
private RecoloredSpriteImage recoloredMazeImage(
304-
MapCategory mapCategory, int spriteNumber, RectShort mazeSprite,
281+
MapCategory mapCategory, Object mazeID, RectShort mazeSprite,
305282
NES_ColorScheme requestedScheme, NES_ColorScheme existingScheme) {
306283

307-
var key = new CacheKey(mapCategory, spriteNumber, requestedScheme);
284+
var key = new CacheKey(mapCategory, mazeID, requestedScheme);
308285
RecoloredSpriteImage mazeImage = recoloredMazeImageCache.get(key);
309286
if (mazeImage == null) {
310287
SpriteSheet<?> spriteSheet = mapCategory == MapCategory.ARCADE ? arcadeMazesSpriteSheet : nonArcadeMazesSpriteSheet;
@@ -313,7 +290,7 @@ private RecoloredSpriteImage recoloredMazeImage(
313290
new RectShort(0, 0, mazeSprite.width(), mazeSprite.height()),
314291
requestedScheme);
315292
recoloredMazeImageCache.put(key, mazeImage);
316-
Logger.info("{} maze image recolored to {}, cache size: {}", mapCategory, requestedScheme, recoloredMazeImageCache.size());
293+
Logger.info("{} maze ({}) recolored to {}, cache size: {}", mapCategory, mazeID, requestedScheme, recoloredMazeImageCache.size());
317294
}
318295
return mazeImage;
319296
}

pacman-app-tengen-mspacman/src/main/java/de/amr/pacmanfx/tengen/ms_pacman/model/TengenMsPacMan_MapSelector.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import de.amr.pacmanfx.lib.nes.NES_ColorScheme;
88
import de.amr.pacmanfx.lib.tilemap.WorldMap;
99
import de.amr.pacmanfx.model.MapSelector;
10+
import de.amr.pacmanfx.tengen.ms_pacman.rendering.NonArcadeMapsSpriteSheet;
1011

1112
import java.util.EnumMap;
1213
import java.util.List;
@@ -59,8 +60,8 @@ public WorldMap createWorldMapForLevel(MapCategory mapCategory, int levelNumber)
5960
case ARCADE -> createArcadeMap(levelNumber);
6061
case STRANGE -> {
6162
WorldMap worldMap = createStrangeMap(levelNumber);
62-
// Hack: Store level number in map such that the renderer can easily determine the corresponding map image
63-
worldMap.setConfigValue("levelNumber", levelNumber);
63+
// Hack: Store mazeID in map properties to make renderer happy
64+
worldMap.setConfigValue("mazeID", NonArcadeMapsSpriteSheet.MazeID.values()[levelNumber - 1]);
6465
yield worldMap;
6566
}
6667
case MINI -> createMiniMap(levelNumber);

0 commit comments

Comments
 (0)