From c34fe0c90c2880512f78320ec2524b476d53b6c9 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Fri, 19 Dec 2025 14:09:36 -0500 Subject: [PATCH] make debounce functionality into a reusable ting --- crates/hedz_reloaded/src/client/settings.rs | 15 +- crates/hedz_reloaded/src/utils/debounce.rs | 152 ++++++++++++++++++++ crates/hedz_reloaded/src/utils/mod.rs | 2 + justfile | 22 +-- 4 files changed, 170 insertions(+), 21 deletions(-) create mode 100644 crates/hedz_reloaded/src/utils/debounce.rs diff --git a/crates/hedz_reloaded/src/client/settings.rs b/crates/hedz_reloaded/src/client/settings.rs index 9540ffc..bdfa561 100644 --- a/crates/hedz_reloaded/src/client/settings.rs +++ b/crates/hedz_reloaded/src/client/settings.rs @@ -1,14 +1,10 @@ use bevy::prelude::*; use bevy_pkv::prelude::*; -use crate::client::audio::SoundSettings; - -#[derive(Resource)] -struct SaveTimer(Timer); +use crate::{client::audio::SoundSettings, utils::Debounce}; pub fn plugin(app: &mut App) { app.insert_resource(PkvStore::new("Rustunit", "HEDZ")); - app.insert_resource(SaveTimer(Timer::from_seconds(1.0, TimerMode::Once))); app.add_systems(Update, persist_settings); app.add_systems(Startup, load_settings); @@ -17,16 +13,13 @@ pub fn plugin(app: &mut App) { fn persist_settings( settings: Res, mut pkv: ResMut, - mut timer: ResMut, - time: Res