mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 19:04:49 +00:00
Removed ResourceManager from AudioManagers
This commit is contained in:
@@ -6,10 +6,12 @@ import org.toop.framework.networking.NetworkingClientManager;
|
|||||||
import org.toop.framework.networking.NetworkingInitializationException;
|
import org.toop.framework.networking.NetworkingInitializationException;
|
||||||
import org.toop.framework.resource.ResourceLoader;
|
import org.toop.framework.resource.ResourceLoader;
|
||||||
import org.toop.framework.resource.ResourceManager;
|
import org.toop.framework.resource.ResourceManager;
|
||||||
|
import org.toop.framework.resource.ResourceMeta;
|
||||||
import org.toop.framework.resource.resources.MusicAsset;
|
import org.toop.framework.resource.resources.MusicAsset;
|
||||||
import org.toop.framework.resource.resources.SoundEffectAsset;
|
import org.toop.framework.resource.resources.SoundEffectAsset;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public final class Main {
|
public final class Main {
|
||||||
static void main(String[] args) {
|
static void main(String[] args) {
|
||||||
@@ -21,17 +23,20 @@ public final class Main {
|
|||||||
ResourceManager.loadAssets(new ResourceLoader("app/src/main/resources/assets"));
|
ResourceManager.loadAssets(new ResourceLoader("app/src/main/resources/assets"));
|
||||||
new Thread(NetworkingClientManager::new).start();
|
new Thread(NetworkingClientManager::new).start();
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
MusicManager<MusicAsset> musicManager = new MusicManager<>(MusicAsset.class);
|
MusicManager<MusicAsset> musicManager = new MusicManager<>(ResourceManager.getAllOfTypeAndRemoveWrapper(MusicAsset.class));
|
||||||
SoundEffectManager<SoundEffectAsset> soundEffectManager = new SoundEffectManager<>(SoundEffectAsset.class);
|
SoundEffectManager<SoundEffectAsset> soundEffectManager = new SoundEffectManager<>(ResourceManager.getAllOfType(SoundEffectAsset.class));
|
||||||
new AudioEventListener<>(
|
AudioVolumeManager audioVolumeManager = new AudioVolumeManager()
|
||||||
musicManager,
|
.registerManager(VolumeControl.MASTERVOLUME, musicManager)
|
||||||
soundEffectManager,
|
.registerManager(VolumeControl.MASTERVOLUME, soundEffectManager)
|
||||||
new AudioVolumeManager()
|
.registerManager(VolumeControl.FX, soundEffectManager)
|
||||||
.registerManager(VolumeControl.MASTERVOLUME, musicManager)
|
.registerManager(VolumeControl.MUSIC, musicManager);
|
||||||
.registerManager(VolumeControl.MASTERVOLUME, soundEffectManager)
|
|
||||||
.registerManager(VolumeControl.FX, soundEffectManager)
|
new AudioEventListener<>(
|
||||||
.registerManager(VolumeControl.MUSIC, musicManager)
|
musicManager,
|
||||||
).initListeners("medium-button-click.wav");
|
soundEffectManager,
|
||||||
|
audioVolumeManager
|
||||||
|
).initListeners("medium-button-click.wav");
|
||||||
|
|
||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,12 +20,9 @@ public class MusicManager<T extends AudioResource> implements org.toop.framework
|
|||||||
private int playingIndex = 0;
|
private int playingIndex = 0;
|
||||||
private boolean playing = false;
|
private boolean playing = false;
|
||||||
|
|
||||||
public MusicManager(Class<T> type) {
|
public MusicManager(List<T> resources) {
|
||||||
this.dispatcher = new JavaFXDispatcher();
|
this.dispatcher = new JavaFXDispatcher();
|
||||||
this.resources = new ArrayList<>(ResourceManager.getAllOfType((Class<? extends BaseResource>) type)
|
this.resources = resources;
|
||||||
.stream()
|
|
||||||
.map(e -> (T) e.getResource())
|
|
||||||
.toList());
|
|
||||||
createShuffled();
|
createShuffled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,10 +21,9 @@ public class SoundEffectManager<T extends AudioResource> implements org.toop.fra
|
|||||||
private static final Logger logger = LogManager.getLogger(SoundEffectManager.class);
|
private static final Logger logger = LogManager.getLogger(SoundEffectManager.class);
|
||||||
private final HashMap<String, T> soundEffectResources;
|
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
|
// If there are duplicates, takes discards the first
|
||||||
soundEffectResources = (HashMap<String, T>) ResourceManager
|
this.soundEffectResources = (HashMap<String, T>) resources
|
||||||
.getAllOfType((Class<? extends BaseResource>) type)
|
|
||||||
.stream()
|
.stream()
|
||||||
.collect(Collectors.
|
.collect(Collectors.
|
||||||
toMap(ResourceMeta::getName, ResourceMeta::getResource, (a, b) -> b, HashMap::new));
|
toMap(ResourceMeta::getName, ResourceMeta::getResource, (a, b) -> b, HashMap::new));
|
||||||
|
|||||||
@@ -119,6 +119,19 @@ public class ResourceManager {
|
|||||||
return result;
|
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.
|
* Retrieve an asset by its unique ID.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user