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); }