diff --git a/api/src/main/java/com/bartlomiejpluta/base/internal/map/MapInitializer.java b/api/src/main/java/com/bartlomiejpluta/base/internal/map/MapInitializer.java index 5d5d3513..1748ab09 100644 --- a/api/src/main/java/com/bartlomiejpluta/base/internal/map/MapInitializer.java +++ b/api/src/main/java/com/bartlomiejpluta/base/internal/map/MapInitializer.java @@ -6,5 +6,5 @@ import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer; import com.bartlomiejpluta.base.api.map.model.GameMap; public interface MapInitializer { - void run(final Context context, final MapHandler handler, final GameMap map, final ObjectLayer layer); + void initialize(); } diff --git a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/manager/DefaultMapManager.java b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/manager/DefaultMapManager.java index b396b38c..68ad5543 100644 --- a/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/manager/DefaultMapManager.java +++ b/engine/src/main/java/com/bartlomiejpluta/base/engine/world/map/manager/DefaultMapManager.java @@ -86,7 +86,7 @@ public class DefaultMapManager implements MapManager { throw new AppException("The map asset with UID: [%s] has not been loaded yet", uid); } - var handlerClassName = map.getHandler(); + var handlerClassName = format("com.bartlomiejpluta.base.generated.map.MapInitializer_%s", uid.replace("-", "_")); log.info("Creating new handler: [{}] for the map with ID: [{}]", handlerClassName, uid); var handlerClass = classLoader.loadClass(handlerClassName); handler = handlerClass.getConstructor().newInstance(); @@ -94,18 +94,8 @@ public class DefaultMapManager implements MapManager { handler.onCreate(context, map); - var layers = map.getLayers(); - for (var layer : layers) { - if (layer instanceof ObjectLayer) { - var packageName = "com.bartlomiejpluta.base.generated.map"; - var purifiedUid = uid.replace("-", "_"); - var layerIndex = layers.indexOf(layer); - var className = format("%s.MapInitializer_%s$$Layer%d", packageName, purifiedUid, layerIndex); - var initializerClass = classLoader.loadClass(className); - var initializer = initializerClass.getConstructor().newInstance(); - initializer.run(context, handler, map, (ObjectLayer) layer); - } - } + var initializer = (MapInitializer) handler; + initializer.initialize(); } return handler;