feat(module): Add DemoModule with audio playback functionality and module service integration
This commit is contained in:
@@ -1,13 +1,17 @@
|
||||
package de.extio.game_engine;
|
||||
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Condition;
|
||||
import org.springframework.context.annotation.ConditionContext;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.type.AnnotatedTypeMetadata;
|
||||
|
||||
import de.extio.game_engine.demo.DemoModule;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableAutoConfiguration
|
||||
@ComponentScan
|
||||
public class Main {
|
||||
|
||||
public static void main(final String[] args) {
|
||||
@@ -28,4 +32,22 @@ public class Main {
|
||||
builder.run(args);
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@Conditional(de.extio.game_engine.Main.StandaloneConfig.StandaloneCondition.class)
|
||||
static class StandaloneConfig {
|
||||
|
||||
@Bean
|
||||
DemoModule demoModule() {
|
||||
return new DemoModule();
|
||||
}
|
||||
|
||||
static class StandaloneCondition implements Condition {
|
||||
|
||||
@Override
|
||||
public boolean matches(final ConditionContext context, final AnnotatedTypeMetadata metadata) {
|
||||
final String env = context.getEnvironment().getProperty("game-engine.env");
|
||||
return "standalone".equals(env);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
32
src/test/java/de/extio/game_engine/demo/DemoModule.java
Normal file
32
src/test/java/de/extio/game_engine/demo/DemoModule.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package de.extio.game_engine.demo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import de.extio.game_engine.audio.AudioController;
|
||||
import de.extio.game_engine.module.AbstractClientModule;
|
||||
import de.extio.game_engine.resource.StaticResource;
|
||||
|
||||
public class DemoModule extends AbstractClientModule {
|
||||
|
||||
@Autowired
|
||||
private AudioController audioController;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
this.getModuleService().changeActiveState(this.getClass(), true);
|
||||
this.getModuleService().changeDisplayState(this.getClass(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() {
|
||||
this.audioController.playMusic(null, List.of(new StaticResource(List.of("audio"), "race.ogg")), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHide() {
|
||||
this.audioController.stopMusic();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user