rust_fisher_game/src/market.rs
Ahmet Kaan Gümüş 6ee570cfa3 refactor: ♻️ player inventory
2025-02-20 22:34:11 +03:00

41 lines
1.3 KiB
Rust

use bevy::prelude::*;
use crate::{player::Player, FISH_PRICE, INTERACTION_AREA_RADIUS};
#[derive(Debug, Component)]
pub struct Market;
impl Market {
pub fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let image = asset_server.load::<Image>("market.png");
let sprite = Sprite::from_image(image);
commands.spawn((
sprite.clone(),
Transform::from_xyz(0.0, 200.0, -1.0),
Market,
));
}
pub fn sell(
player_transform_query: Query<&Transform, With<Player>>,
mut player_query: Query<&mut Player, With<Player>>,
market_query: Query<&Transform, With<Market>>,
keyboard: Res<ButtonInput<KeyCode>>,
) {
let player_transform = player_transform_query.get_single().unwrap();
let player_inventory = &mut player_query.get_single_mut().unwrap().inventory;
for market_query in &market_query {
let distance = player_transform
.translation
.distance(market_query.translation);
if distance < INTERACTION_AREA_RADIUS {
if keyboard.just_pressed(KeyCode::KeyE) {
player_inventory.money += player_inventory.fish * FISH_PRICE;
player_inventory.fish = 0;
}
}
}
}
}