feat(demo): Add logo and welcome label to main window in DemoModule

This commit is contained in:
extio-de
2025-12-26 15:14:11 +01:00
parent 5f49beec3c
commit 09b0e28c5f
2 changed files with 29 additions and 30 deletions

BIN
data/renderer/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View File

@@ -9,8 +9,9 @@ import de.extio.game_engine.audio.AudioController;
import de.extio.game_engine.module.AbstractClientModule; import de.extio.game_engine.module.AbstractClientModule;
import de.extio.game_engine.renderer.RendererControl; import de.extio.game_engine.renderer.RendererControl;
import de.extio.game_engine.renderer.container.Window; import de.extio.game_engine.renderer.container.Window;
import de.extio.game_engine.renderer.model.RenderingBo; 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.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.bo.ControlRenderingBo.LabelControl;
import de.extio.game_engine.renderer.work.RenderingBoPool; import de.extio.game_engine.renderer.work.RenderingBoPool;
import de.extio.game_engine.resource.StaticResource; import de.extio.game_engine.resource.StaticResource;
@@ -35,39 +36,10 @@ public class DemoModule extends AbstractClientModule {
this.mainWindow.setNormalizedDimension(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7)); this.mainWindow.setNormalizedDimension(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7));
this.mainWindow.setDraggable(true); this.mainWindow.setDraggable(true);
var bo = this.renderingBoPool.acquire("DemoModule_MainWindow_Label_1", ControlRenderingBo.class)
.setCaption("Welcome to Exo's Game Engine Demo!")
.setFontSize(48)
.setType(LabelControl.class)
.setVisible(true)
.setEnabled(true)
.withDimensionAbsolute(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7).substract(20).getX(), 60)
.withPositionRelative(10, 100);
this.mainWindow.putRenderingBo(bo);
this.getModuleService().changeActiveState(this.getId(), true); this.getModuleService().changeActiveState(this.getId(), true);
this.getModuleService().changeDisplayState(this.getId(), true); this.getModuleService().changeDisplayState(this.getId(), true);
} }
// private void displayMenuEntries(final List<RenderingBo> renderingBo) {
// int y = EngineFacade.instance().getRendererControl().getEffectiveViewportDimension().getY() / 2 - (this.SIZE + this.SPACING) * this.menuEntries.size() / 2;
// for (final MenuEntry menuEntry : this.menuEntries) {
// final int fy = y;
// this.addRenderingBo(renderingBo, true, () -> EngineFacade.instance().getRenderingBoPool().acquire(ControlRenderingBo.class)
// .setId("Menu_Label_" + menuEntry.getId())
// .setCaption(menuEntry.getCaption())
// .setFontSize(this.SIZE)
// .setType(LabelControl.class)
// .setVisible(this.isDisplayed())
// .setEnabled(menuEntry.isActive())
// .withDimensionAbsolute(EngineFacade.instance().getRendererControl().getEffectiveViewportDimension().getX(), this.SIZE + this.SPACING)
// .withPositionAbsoluteAnchorTopLeft(0, fy));
// y += this.SIZE + this.SPACING;
// }
// }
@Override @Override
public void onUnload() { public void onUnload() {
this.getModuleService().unloadModule(this.mainWindow.getId()); this.getModuleService().unloadModule(this.mainWindow.getId());
@@ -75,6 +47,33 @@ public class DemoModule extends AbstractClientModule {
@Override @Override
public void onActivate() { public void onActivate() {
var bo = this.renderingBoPool.acquire("DemoModule_MainWindow_Label_Welcome", ControlRenderingBo.class)
.setCaption("Welcome to Exo's Game Engine Demo!")
.setFontSize(48)
.setType(LabelControl.class)
.setVisible(true)
.setEnabled(true)
.withDimensionAbsolute(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7).substract(20).getX(), 60)
.withPositionRelative(10, 100);
this.mainWindow.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_MainWindow_Logo", DrawImageRenderingBo.class)
.setResource(new StaticResource(List.of("renderer"), "logo.png"))
.withDimensionAbsolute(256, 256)
.setLayer(RenderingBoLayer.UI0_0)
.withPositionRelative((this.mainWindow.getNormalizedDimension().getX() - 256) / 2, 200);
this.mainWindow.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_MainWindow_Label_Start", ControlRenderingBo.class)
.setCaption("Start")
.setFontSize(96)
.setType(LabelControl.class)
.setVisible(true)
.setEnabled(true)
.withDimensionAbsolute(RendererControl.REFERENCE_RESOLUTION.divide(9).multiply(7).substract(20).getX(), 120)
.withPositionRelative(10, 600);
this.mainWindow.putRenderingBo(bo);
this.getModuleService().changeActiveState(this.mainWindow.getId(), true); this.getModuleService().changeActiveState(this.mainWindow.getId(), true);
} }