From 8019e710143eaf94e3f955da0779bf307ed8b250 Mon Sep 17 00:00:00 2001 From: Johannes Hendrik Gerard van der Weide Date: Sat, 9 Dec 2023 17:17:31 +0100 Subject: [PATCH] Shabingus two files LETS GOOOOOO OwO --- src/main.rs | 130 ++--------------------------------------------- src/player.rs | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 125 deletions(-) create mode 100644 src/player.rs diff --git a/src/main.rs b/src/main.rs index be39315..b1fd1ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,9 @@ use bevy::prelude::*; +use player::PlayerPlugin; use serde::{Deserialize, Serialize}; use std::fs; use std::path::Path; +use crate::player::Player; #[derive(Component, Serialize, Deserialize)] pub struct Settings { @@ -14,31 +16,14 @@ pub struct Settings { pub input_sprite_location: Vec2, } -#[derive(Serialize, Deserialize)] -pub struct PlayerYAML { - pub sprite_path: String, - pub speed: f32, - pub movement: Vec2, - pub direction: Vec2, - pub dash: bool, - pub dash_modifier: f32, -} - -#[derive(Component)] -pub struct Player { - pub speed: f32, - pub movement: Vec2, - pub direction: Vec2, - pub dash: bool, - pub dash_modifier: f32, -} - #[derive(Component)] pub struct InputVisual { pub location: Vec2, pub input_direction: Vec2, } +mod player; + fn main() { App::new() .add_plugins( @@ -55,10 +40,10 @@ fn main() { }) .build(), ) + .add_plugins(PlayerPlugin) .add_systems(Startup, setup) .add_systems(Update, get_input) .add_systems(Update, draw_input) - .add_systems(Update, character_movement) .run(); } @@ -113,53 +98,6 @@ fn setup(mut commands: Commands, asset_server: Res) { input_direction: Vec2::new(0.0, 0.0), }, )); - - //Default player_data - let mut player_data_yaml: String = " - #These values you can just go edit no problem - sprite_path: blobcat_hertog.png - speed: 75.0 - movement: [ - 0.0, - 0.0 - ] - #These you should leave alone - direction: [ - 0.0, - 0.0 - ] - dash: false - dash_modifier: 0.3 - " - .to_string(); - let player_data_file = Path::new("./data/player_data.yml"); - if player_data_file.exists() { - player_data_yaml = fs::read_to_string("./data/player_data.yml") - .expect("Error reading data/player_data.yml"); - } else { - fs::write("./data/player_data.yml", player_data_yaml.clone()) - .expect("Error writing data/player_data.yml"); - } - let player_data = - serde_yaml::from_str::(&player_data_yaml).expect("Error serializing to YAML"); - commands.spawn(( - SpriteBundle { - sprite: Sprite { - custom_size: Some(Vec2::new(50.0, 50.0)), - ..default() - }, - texture: asset_server.load(player_data.sprite_path), - ..default() - }, - //TODO: find out how to use vectors in json so I don't have to use this array fuckery - Player { - speed: player_data.speed, - movement: Vec2::new(player_data.movement.x, player_data.movement.y), - direction: Vec2::new(player_data.direction.x, player_data.direction.y), - dash: player_data.dash, - dash_modifier: player_data.dash_modifier, - }, - )); } //TODO: make it so keycodes can be changed (maby through JSON at first and later make a UI menu to edit said JSON) @@ -212,61 +150,3 @@ fn draw_input(mut visuals: Query<(&mut Transform, &mut InputVisual)>, input: Que } } } - -fn character_movement(mut characters: Query<(&mut Transform, &mut Player)>, time: Res