Add possibility to reset cached maps

This commit is contained in:
2022-09-01 13:26:57 +02:00
parent f1501b758b
commit 0dc7280462
4 changed files with 22 additions and 0 deletions

View File

@@ -79,6 +79,8 @@ public interface Context extends Updatable, Renderable, Disposable {
boolean togglePause();
void resetMaps();
<E extends Event> void fireEvent(E event);
<E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener);

View File

@@ -276,6 +276,12 @@ public class DefaultContext implements Context {
return this.paused;
}
@Override
public void resetMaps() {
log.info("Resetting maps");
mapManager.resetMaps();
}
@Override
public <E extends Event> void addEventListener(EventType<E> type, Consumer<E> listener) {
eventHandler.addListener(type, listener);

View File

@@ -110,4 +110,16 @@ public class DefaultMapManager implements MapManager {
return handler;
}
@Override
public void resetMaps() {
log.info("Removing maps and map handlers from cache");
var mapsSize = maps.size();
var handlersSize = handlers.size();
maps.clear();
handlers.clear();
log.info("Removed {} maps and {} map handlers from cache", mapsSize, handlersSize);
}
}

View File

@@ -9,4 +9,6 @@ import com.bartlomiejpluta.base.internal.gc.Cleanable;
public interface MapManager extends AssetManager<GameMapAsset, DefaultGameMap>, Cleanable {
MapHandler loadHandler(Context context, String mapUid);
void resetMaps();
}