use bevy::app::FixedPreUpdate;
use bevy::prelude::Resource;
use crate::prelude::{App, Component, Query, ResMut};
use bevy_replicon::shared::replication::Replicated;
#[derive(Resource)]
pub struct Tick(pub u64);
#[derive(Component, Default)]
pub struct ServerTick(pub u64);
#[derive(Component, Default)]
#[require(Replicated, ServerTick)]
pub struct ReplicateAndInterpolate;
pub fn tick_update_plugin(app: &mut App) {
app
.insert_resource(Tick(0))
.add_systems(FixedPreUpdate, tick);
}
fn tick(mut tick_counter: ResMut<Tick>, mut entities: Query<&mut ServerTick>) {
tick_counter.0 += 1;
for mut entity in entities.iter_mut() {
entity.0 = tick_counter.0;
}
}