feat: market

This commit is contained in:
Ahmet Kaan Gümüş 2025-02-18 16:52:59 +03:00
parent 79f115c6ef
commit 9f52e24582
6 changed files with 92 additions and 7 deletions

41
src/market.rs Normal file
View file

@ -0,0 +1,41 @@
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 mut player = player_query.get_single_mut().unwrap();
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.money = player.fish_count * FISH_PRICE;
player.fish_count = 0;
}
}
}
}
}