feat(demo): Add audio alerts for UI control events in DemoModule

This commit is contained in:
extio-de
2025-12-26 15:33:08 +01:00
parent 1d0ec4fd5c
commit a9ddcb173d
3 changed files with 21 additions and 2 deletions

BIN
data/audio/alert0.ogg Normal file

Binary file not shown.

BIN
data/audio/alert2.ogg Normal file

Binary file not shown.

View File

@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import de.extio.game_engine.audio.AudioController;
import de.extio.game_engine.event.EventService;
import de.extio.game_engine.module.AbstractClientModule;
import de.extio.game_engine.renderer.RendererControl;
import de.extio.game_engine.renderer.container.Window;
@@ -13,6 +14,7 @@ import de.extio.game_engine.renderer.model.RenderingBoLayer;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawImageRenderingBo;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelControl;
import de.extio.game_engine.renderer.model.event.UiControlEvent;
import de.extio.game_engine.renderer.work.RenderingBoPool;
import de.extio.game_engine.resource.StaticResource;
@@ -27,6 +29,9 @@ public class DemoModule extends AbstractClientModule {
@Autowired
private RenderingBoPool renderingBoPool;
@Autowired
private EventService eventService;
private Window mainWindow;
@Override
@@ -74,6 +79,8 @@ public class DemoModule extends AbstractClientModule {
.withPositionRelative(10, 600);
this.mainWindow.putRenderingBo(bo);
this.eventService.register(UiControlEvent.class, this.getId(), this::onUiControlEvent);
this.getModuleService().changeActiveState(this.mainWindow.getId(), true);
}
@@ -85,7 +92,7 @@ public class DemoModule extends AbstractClientModule {
@Override
public void onShow() {
this.getModuleService().changeDisplayState(this.mainWindow.getId(), true);
// this.audioController.playMusic(null, List.of(new StaticResource(List.of("audio"), "race.ogg")), true);
this.audioController.playMusic(null, List.of(new StaticResource(List.of("audio"), "race.ogg")), true);
}
@Override
@@ -94,4 +101,16 @@ public class DemoModule extends AbstractClientModule {
this.audioController.stopMusic();
}
private void onUiControlEvent(final UiControlEvent event) {
switch (event.getId()) {
case "DemoModule_MainWindow_Label_Welcome" -> {
this.audioController.play(new StaticResource(List.of("audio"), "alert0.ogg"));
}
case "DemoModule_MainWindow_Label_Start" -> {
this.audioController.play(new StaticResource(List.of("audio"), "alert2.ogg"));
}
}
}
}