From afefa8a46a83be0ac76882a52bf58b8e09c2b4a3 Mon Sep 17 00:00:00 2001 From: extio-de Date: Sun, 1 Feb 2026 15:33:27 +0100 Subject: [PATCH] feat(renderer): add lastControlDataUpdateTime handling to SliderControl --- .../renderer/g2d/control/G2DDrawControl.java | 1 + .../g2d/control/impl/G2DSliderControlImpl.java | 14 ++++++++++++-- .../renderer/model/bo/ControlRenderingBo.java | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/G2DDrawControl.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/G2DDrawControl.java index ab7313d..c1e4567 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/G2DDrawControl.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/G2DDrawControl.java @@ -352,6 +352,7 @@ public class G2DDrawControl extends G2DAbstractRenderingBo implements ControlRen ((WindowPanelControl) control).setCustomData(this.windowPanelData); } else if (this.clazz == SliderControl.class && this.sliderData != null) { + ((SliderControl) control).setLastControlDataUpdateTime(this.lastControlDataUpdateTime); ((SliderControl) control).setCustomData(this.sliderData); } else if (this.clazz == TableControl.class && this.tableData != null) { diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSliderControlImpl.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSliderControlImpl.java index 0ffac16..168af07 100644 --- a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSliderControlImpl.java +++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSliderControlImpl.java @@ -23,16 +23,26 @@ public class G2DSliderControlImpl extends G2DBaseControlImpl implements SliderCo protected double lastValue2; protected Consumer actionConsumer; + + protected long lastControlDataUpdateTime; + + protected long lastControlDataUpdateTimeInternal; @Override public void setCustomData(final SliderData data) { - if (data != null) { + if (data != null && this.lastControlDataUpdateTimeInternal < this.lastControlDataUpdateTime) { this.setColor(data.color()); this.setHorizontal(data.horizontal()); this.setValue(data.value()); this.setValue2(data.value2()); + this.lastControlDataUpdateTimeInternal = this.lastControlDataUpdateTime; } } + + @Override + public void setLastControlDataUpdateTime(final long time) { + this.lastControlDataUpdateTime = time; + } public G2DSliderControlImpl() { @@ -140,7 +150,7 @@ public class G2DSliderControlImpl extends G2DBaseControlImpl implements SliderCo protected void createControl() { this.control = new CustomSlider(event -> { - this.lastValue = Double.parseDouble(event.getActionCommand()); + this.setValue(Double.parseDouble(event.getActionCommand())); if (this.enabled) { this.performAction(); } diff --git a/src/main/java/de/extio/game_engine/renderer/model/bo/ControlRenderingBo.java b/src/main/java/de/extio/game_engine/renderer/model/bo/ControlRenderingBo.java index deff386..91b4bc5 100644 --- a/src/main/java/de/extio/game_engine/renderer/model/bo/ControlRenderingBo.java +++ b/src/main/java/de/extio/game_engine/renderer/model/bo/ControlRenderingBo.java @@ -182,6 +182,8 @@ public interface ControlRenderingBo extends RenderingBoHasDimension { public static interface SliderControl extends BaseControl { void setCustomData(SliderData data); + + void setLastControlDataUpdateTime(long time); }