Input replication (#62)

This commit is contained in:
PROMETHIA-27
2025-08-25 03:41:28 -04:00
committed by GitHub
parent c650924d68
commit 7f6c00b5d6
20 changed files with 345 additions and 280 deletions

View File

@@ -5,11 +5,12 @@ use crate::{
cash::CashCollectEvent, global_observer, head_drop::HeadCollected, heads::HeadState,
heads_database::HeadsDatabase,
};
pub use backpack_ui::BackpackAction;
use bevy::prelude::*;
use serde::{Deserialize, Serialize};
pub use ui_head_state::UiHeadState;
#[derive(Resource, Default)]
#[derive(Component, Default, Reflect, Serialize, Deserialize, PartialEq)]
#[reflect(Component)]
pub struct Backpack {
pub heads: Vec<HeadState>,
}
@@ -38,7 +39,7 @@ impl Backpack {
pub struct BackbackSwapEvent(pub usize);
pub fn plugin(app: &mut App) {
app.init_resource::<Backpack>();
app.register_type::<Backpack>();
app.add_plugins(backpack_ui::plugin);
@@ -48,14 +49,18 @@ pub fn plugin(app: &mut App) {
fn on_head_collect(
trigger: Trigger<HeadCollected>,
mut cmds: Commands,
mut backpack: ResMut<Backpack>,
mut backpack: Query<&mut Backpack>,
heads_db: Res<HeadsDatabase>,
) {
) -> Result {
let HeadCollected(head) = *trigger.event();
let mut backpack = backpack.get_mut(trigger.target())?;
if backpack.contains(head) {
cmds.trigger(CashCollectEvent);
} else {
backpack.insert(head, heads_db.as_ref());
}
Ok(())
}