feat: ✨ market
This commit is contained in:
parent
79f115c6ef
commit
9f52e24582
6 changed files with 92 additions and 7 deletions
41
src/market.rs
Normal file
41
src/market.rs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue