Add possibility to reset cached maps
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user