feat(demo): add decorative border effects to ScrollArea in DemoModule

This commit is contained in:
extio-de
2025-12-29 19:13:54 +01:00
parent 572dff2f39
commit 8d3788b930
2 changed files with 19 additions and 8 deletions

View File

@@ -215,19 +215,17 @@ public class G2DDrawEffect extends G2DAbstractRenderingBo implements DrawEffectR
if (this.cull(area)) {
break;
}
final var strength = this.customInt0 <= 0 ? 2 : this.customInt0;
final var effectColor = this.color == null ? Color.WHITE : this.color.toAwtColor();
// Use PatternRenderer from ThemeManager
final var themeManager = (G2DThemeManager) this.rendererData.getThemeManager();
final var theme = themeManager.getCurrentTheme();
final PatternRenderer patternRenderer = themeManager.getPatternRenderer(theme.getPatternRendererName());
final var strength = this.customInt0 <= 0 ? 2 : this.customInt0;
final var effectColor = this.color == null ? theme.getBorderOuter().toColor() : this.color.toAwtColor();
if (patternRenderer != null) {
if (this.effect == DrawEffectRenderingBoEffects.DECORATIVE_BORDER) {
patternRenderer.drawDecorativeBorder(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor);
} else {
patternRenderer.drawDecorativeBorderFilled(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor, effectColor);
patternRenderer.drawDecorativeBorderFilled(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor, theme.getWindowBackground().toColor());
}
}

View File

@@ -18,8 +18,11 @@ import de.extio.game_engine.renderer.container.ScrollArea;
import de.extio.game_engine.renderer.container.Window;
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.DrawEffectRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawEffectRenderingBoEffects;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ButtonControl;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelControl;
import de.extio.game_engine.renderer.model.color.RgbaColor;
import de.extio.game_engine.renderer.model.bo.DrawFontRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawImageRenderingBo;
import de.extio.game_engine.renderer.model.bo.HorizontalAlignment;
@@ -394,10 +397,20 @@ public class DemoModule extends AbstractClientModule {
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Text_" + i, DrawFontRenderingBo.class)
.setText(String.valueOf(i))
.setSize(28)
.setAlignment(HorizontalAlignment.CENTER)
.setAlignment(HorizontalAlignment.LEFT)
.withDimensionAbsolute(150, 60)
.setLayer(RenderingBoLayer.UI0)
.withPositionRelative(250, y + 22);
this.scrollArea.putRenderingBo(bo);
this.scrollArea.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Effect_" + i, DrawEffectRenderingBo.class)
.setRelativeCoordinates(List.of(ImmutableCoordI2.create(64, 64)))
.setEffect(DrawEffectRenderingBoEffects.DECORATIVE_BORDER_FILLED)
.setCustomInt0(4)
.setColor(RgbaColor.GRAY)
.setLayer(RenderingBoLayer.UI0)
.withPositionRelative(350, y);
this.scrollArea.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_ScrollArea_Button_" + i, ControlRenderingBo.class)
.setCaption("Button " + (i + 1))