Removed ResourceManager from AudioManagers

This commit is contained in:
lieght
2025-10-13 02:47:34 +02:00
parent fcc0b9d0dd
commit 4bcf70d4dc
4 changed files with 33 additions and 19 deletions

View File

@@ -20,12 +20,9 @@ public class MusicManager<T extends AudioResource> implements org.toop.framework
private int playingIndex = 0;
private boolean playing = false;
public MusicManager(Class<T> type) {
public MusicManager(List<T> resources) {
this.dispatcher = new JavaFXDispatcher();
this.resources = new ArrayList<>(ResourceManager.getAllOfType((Class<? extends BaseResource>) type)
.stream()
.map(e -> (T) e.getResource())
.toList());
this.resources = resources;
createShuffled();
}

View File

@@ -21,10 +21,9 @@ public class SoundEffectManager<T extends AudioResource> implements org.toop.fra
private static final Logger logger = LogManager.getLogger(SoundEffectManager.class);
private final HashMap<String, T> soundEffectResources;
public SoundEffectManager(Class<T> type){
public <K extends BaseResource & AudioResource> SoundEffectManager(List<ResourceMeta<K>> resources) {
// If there are duplicates, takes discards the first
soundEffectResources = (HashMap<String, T>) ResourceManager
.getAllOfType((Class<? extends BaseResource>) type)
this.soundEffectResources = (HashMap<String, T>) resources
.stream()
.collect(Collectors.
toMap(ResourceMeta::getName, ResourceMeta::getResource, (a, b) -> b, HashMap::new));

View File

@@ -119,6 +119,19 @@ public class ResourceManager {
return result;
}
public static <T extends BaseResource> List<T> getAllOfTypeAndRemoveWrapper(Class<T> type) {
List<T> result = new ArrayList<>();
for (ResourceMeta<? extends BaseResource> meta : assets.values()) {
BaseResource res = meta.getResource();
if (type.isInstance(res)) {
result.add((T) res);
}
}
return result;
}
/**
* Retrieve an asset by its unique ID.
*