From 3a1d1277ac8091b74a9459665bdd7509b6860774 Mon Sep 17 00:00:00 2001 From: extio-de Date: Thu, 25 Dec 2025 17:06:25 +0100 Subject: [PATCH] feat(demo): Integrate Window management in DemoModule for enhanced rendering control --- .../de/extio/game_engine/demo/DemoModule.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/test/java/de/extio/game_engine/demo/DemoModule.java b/src/test/java/de/extio/game_engine/demo/DemoModule.java index e5ce443..8321ef5 100644 --- a/src/test/java/de/extio/game_engine/demo/DemoModule.java +++ b/src/test/java/de/extio/game_engine/demo/DemoModule.java @@ -3,29 +3,59 @@ package de.extio.game_engine.demo; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import de.extio.game_engine.audio.AudioController; import de.extio.game_engine.module.AbstractClientModule; +import de.extio.game_engine.renderer.RendererControl; +import de.extio.game_engine.renderer.container.Window; import de.extio.game_engine.resource.StaticResource; public class DemoModule extends AbstractClientModule { + @Autowired + private ApplicationContext applicationContext; + @Autowired private AudioController audioController; + private Window mainWindow; + @Override public void onLoad() { + this.mainWindow = this.applicationContext.getBean(Window.class); + this.mainWindow.setPosition(RendererControl.REFERENCE_RESOLUTION.divide(9)); + this.mainWindow.setDimension(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7)); + this.mainWindow.setDraggable(true); + this.getModuleService().changeActiveState(this.getId(), true); this.getModuleService().changeDisplayState(this.getId(), true); } - + + @Override + public void onUnload() { + this.getModuleService().unloadModule(this.mainWindow.getId()); + } + + @Override + public void onActivate() { + this.getModuleService().changeActiveState(this.mainWindow.getId(), true); + } + + @Override + public void onDeactivate() { + this.getModuleService().changeActiveState(this.mainWindow.getId(), false); + } + @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); } @Override public void onHide() { + this.getModuleService().changeDisplayState(this.mainWindow.getId(), false); this.audioController.stopMusic(); }