34
34
import toniarts .openkeeper .game .controller .room .TempleController ;
35
35
import toniarts .openkeeper .game .controller .room .ThreeByThreeController ;
36
36
import toniarts .openkeeper .game .controller .room .TortureChamberController ;
37
+ import toniarts .openkeeper .game .controller .room .TrainingRoomController ;
37
38
import toniarts .openkeeper .game .controller .room .TreasuryController ;
38
39
import toniarts .openkeeper .game .controller .room .WorkshopController ;
39
40
import toniarts .openkeeper .tools .convert .map .KwdFile ;
@@ -54,70 +55,70 @@ private RoomControllerFactory() {
54
55
55
56
public static IRoomController constructRoom (KwdFile kwdFile , RoomInstance roomInstance , IObjectsController objectsController ,
56
57
Map <Variable .MiscVariable .MiscType , Variable .MiscVariable > gameSettings , IGameTimer gameTimer ) {
57
-
58
58
String roomName = roomInstance .getRoom ().getName ();
59
59
60
60
switch (roomInstance .getRoom ().getTileConstruction ()) {
61
- case _3_BY_3 :
61
+ case _3_BY_3 -> {
62
62
return new ThreeByThreeController (kwdFile , roomInstance , objectsController );
63
-
64
- case HERO_GATE :
65
- //return new HeroGateConstructor(assetManager, roomInstance);
66
- case HERO_GATE_FRONT_END :
63
+ }
64
+ case HERO_GATE , HERO_GATE_FRONT_END -> {
67
65
return new HeroGateFrontEndController (kwdFile , roomInstance , objectsController );
68
- case HERO_GATE_2_BY_2 :
69
- //return new HeroGateTwoByTwoConstructor(assetManager, roomInstance);
70
- // case HERO_GATE_3_BY_1:
66
+ }
67
+ case HERO_GATE_2_BY_2 -> {
71
68
return new NormalRoomController (kwdFile , roomInstance , objectsController );
72
- //return new HeroGateThreeByOneConstructor(assetManager, roomInstance);
73
- case _5_BY_5_ROTATED :
69
+ }
70
+ case _5_BY_5_ROTATED -> {
74
71
return new FiveByFiveRotatedController (kwdFile , roomInstance , objectsController , gameSettings , gameTimer );
72
+ }
73
+ case NORMAL -> {
74
+ return constructNormal (roomName , kwdFile , roomInstance , objectsController , gameTimer , gameSettings );
75
+ }
76
+ case DOUBLE_QUAD -> {
77
+ return constructDoubleQuad (roomName , kwdFile , roomInstance , objectsController , gameTimer );
78
+ }
79
+ default -> {
80
+ // TODO
81
+ logger .log (Level .WARNING , "Room {0} not exist" , roomName );
82
+ return new NormalRoomController (kwdFile , roomInstance , objectsController );
83
+ }
84
+ }
85
+ }
86
+
87
+ private static IRoomController constructDoubleQuad (String roomName , KwdFile kwdFile , RoomInstance roomInstance , IObjectsController objectsController , IGameTimer gameTimer ) {
88
+ if (roomName .equalsIgnoreCase ("Prison" )) {
89
+ return new PrisonController (kwdFile , roomInstance , objectsController , gameTimer );
90
+ } else if (roomName .equalsIgnoreCase ("Combat Pit" )) {
91
+ return new CombatPitController (kwdFile , roomInstance , objectsController );
92
+ } else if (roomName .equalsIgnoreCase ("Temple" )) {
93
+ return new TempleController (kwdFile , roomInstance , objectsController );
94
+ }
75
95
76
- case NORMAL :
77
- if (roomName .equalsIgnoreCase ("Lair" )) {
78
- return new LairController (kwdFile , roomInstance , objectsController , gameTimer );
79
- } else if (roomName .equalsIgnoreCase ("Library" )) {
80
- return new LibraryController (kwdFile , roomInstance , objectsController , gameTimer );
81
- // } //else if (roomName.equalsIgnoreCase("Training Room")) {
82
- // return new TrainingRoom(assetManager, roomInstance, objectLoader, worldState, effectManager);
83
- // } else
84
- } else if (roomName .equalsIgnoreCase ("Work Shop" )) {
85
- return new WorkshopController (kwdFile , roomInstance , objectsController );
96
+ return new DoubleQuadController (kwdFile , roomInstance , objectsController );
97
+ }
98
+
99
+ private static IRoomController constructNormal (String roomName , KwdFile kwdFile , RoomInstance roomInstance , IObjectsController objectsController , IGameTimer gameTimer , Map <Variable .MiscVariable .MiscType , Variable .MiscVariable > gameSettings ) {
100
+ if (roomName .equalsIgnoreCase ("Lair" )) {
101
+ return new LairController (kwdFile , roomInstance , objectsController , gameTimer );
102
+ } else if (roomName .equalsIgnoreCase ("Library" )) {
103
+ return new LibraryController (kwdFile , roomInstance , objectsController , gameTimer );
104
+ } else if (roomName .equalsIgnoreCase ("Training Room" )) {
105
+ return new TrainingRoomController (kwdFile , roomInstance , objectsController , gameTimer );
106
+ } else if (roomName .equalsIgnoreCase ("Work Shop" )) {
107
+ return new WorkshopController (kwdFile , roomInstance , objectsController );
86
108
// } else if (roomName.equalsIgnoreCase("Guard Room")) {
87
109
// return new GuardRoom(assetManager, roomInstance, objectLoader, worldState, effectManager);
88
- } else if (roomName .equalsIgnoreCase ("Casino" )) {
89
- return new CasinoController (kwdFile , roomInstance , objectsController );
110
+ } else if (roomName .equalsIgnoreCase ("Casino" )) {
111
+ return new CasinoController (kwdFile , roomInstance , objectsController );
90
112
// } else if (roomName.equalsIgnoreCase("Graveyard")) {
91
113
// return new Graveyard(assetManager, roomInstance, objectLoader, worldState, effectManager);
92
- } else if (roomName .equalsIgnoreCase ("Torture Chamber" )) {
93
- return new TortureChamberController (kwdFile , roomInstance , objectsController , gameTimer );
94
- } else if (roomName .equalsIgnoreCase ("Treasury" )) {
95
- return new TreasuryController (kwdFile , roomInstance , objectsController , gameSettings , gameTimer );
96
- } else if (roomName .equalsIgnoreCase ("Hatchery" )) {
97
- return new HatcheryController (kwdFile , roomInstance , objectsController , gameTimer );
98
- }
99
- return new NormalRoomController (kwdFile , roomInstance , objectsController );
100
-
101
- // case QUAD:
102
- // if (roomName.equalsIgnoreCase("Hero Stone Bridge") || roomName.equalsIgnoreCase("Stone Bridge")) {
103
- // return new StoneBridge(assetManager, roomInstance, objectLoader, worldState, effectManager);
104
- // }
105
- // return new QuadConstructor(assetManager, roomInstance);
106
- //
107
- case DOUBLE_QUAD :
108
- if (roomName .equalsIgnoreCase ("Prison" )) {
109
- return new PrisonController (kwdFile , roomInstance , objectsController , gameTimer );
110
- } else if (roomName .equalsIgnoreCase ("Combat Pit" )) {
111
- return new CombatPitController (kwdFile , roomInstance , objectsController );
112
- } else if (roomName .equalsIgnoreCase ("Temple" )) {
113
- return new TempleController (kwdFile , roomInstance , objectsController );
114
- }
115
- return new DoubleQuadController (kwdFile , roomInstance , objectsController );
116
- default :
117
-
118
- // TODO
119
- logger .log (Level .WARNING , "Room {0} not exist" , roomName );
120
- return new NormalRoomController (kwdFile , roomInstance , objectsController );
114
+ } else if (roomName .equalsIgnoreCase ("Torture Chamber" )) {
115
+ return new TortureChamberController (kwdFile , roomInstance , objectsController , gameTimer );
116
+ } else if (roomName .equalsIgnoreCase ("Treasury" )) {
117
+ return new TreasuryController (kwdFile , roomInstance , objectsController , gameSettings , gameTimer );
118
+ } else if (roomName .equalsIgnoreCase ("Hatchery" )) {
119
+ return new HatcheryController (kwdFile , roomInstance , objectsController , gameTimer );
121
120
}
121
+
122
+ return new NormalRoomController (kwdFile , roomInstance , objectsController );
122
123
}
123
124
}
0 commit comments