From 10afe6fd080892df4ec436d588aee0c43077b31d Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Thu, 12 Feb 2026 17:09:57 +0300 Subject: [PATCH] feat: Player, assets and basic movement --- Cargo.lock | 14 +++--- Cargo.toml | 2 +- assets/sprites/interactive/crate_closed.png | Bin 0 -> 205 bytes assets/sprites/interactive/crate_opened.png | Bin 0 -> 263 bytes assets/sprites/interactive/door_closed.png | Bin 0 -> 129 bytes assets/sprites/interactive/door_opened.png | Bin 0 -> 130 bytes assets/sprites/interactive/lamp.png | Bin 0 -> 157 bytes assets/sprites/interactive/padlock.png | Bin 0 -> 110 bytes assets/sprites/interactive/wardrobe.png | Bin 0 -> 156 bytes assets/sprites/items/choco_bar.png | Bin 0 -> 211 bytes assets/sprites/level/ceiling.png | Bin 0 -> 113 bytes assets/sprites/level/floor.png | Bin 0 -> 126 bytes assets/sprites/level/stairs_base.png | Bin 0 -> 110 bytes assets/sprites/level/stairs_main.png | Bin 0 -> 161 bytes assets/sprites/level/wall.png | Bin 0 -> 138 bytes assets/sprites/level/wall_connector.png | Bin 0 -> 171 bytes assets/sprites/level/window.png | Bin 0 -> 111 bytes assets/sprites/player/player.png | Bin 0 -> 199 bytes src/layout.rs | 1 + src/lib.rs | 34 +++++++++++++ src/main.rs | 50 ++------------------ src/player.rs | 41 ++++++++++++++++ 22 files changed, 87 insertions(+), 55 deletions(-) create mode 100644 assets/sprites/interactive/crate_closed.png create mode 100644 assets/sprites/interactive/crate_opened.png create mode 100644 assets/sprites/interactive/door_closed.png create mode 100644 assets/sprites/interactive/door_opened.png create mode 100644 assets/sprites/interactive/lamp.png create mode 100644 assets/sprites/interactive/padlock.png create mode 100644 assets/sprites/interactive/wardrobe.png create mode 100644 assets/sprites/items/choco_bar.png create mode 100644 assets/sprites/level/ceiling.png create mode 100644 assets/sprites/level/floor.png create mode 100644 assets/sprites/level/stairs_base.png create mode 100644 assets/sprites/level/stairs_main.png create mode 100644 assets/sprites/level/wall.png create mode 100644 assets/sprites/level/wall_connector.png create mode 100644 assets/sprites/level/window.png create mode 100644 assets/sprites/player/player.png create mode 100644 src/layout.rs create mode 100644 src/lib.rs create mode 100644 src/player.rs diff --git a/Cargo.lock b/Cargo.lock index 5e928e0..0573760 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1377,13 +1377,6 @@ dependencies = [ "pin-project", ] -[[package]] -name = "bevy_template" -version = "0.1.0" -dependencies = [ - "bevy", -] - [[package]] name = "bevy_text" version = "0.18.0" @@ -2275,6 +2268,13 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "expedition_demo" +version = "0.1.0" +dependencies = [ + "bevy", +] + [[package]] name = "fastrand" version = "2.3.0" diff --git a/Cargo.toml b/Cargo.toml index 0798d84..11e3417 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ cargo-features = ["codegen-backend"] [package] -name = "bevy_template" +name = "expedition_demo" version = "0.1.0" edition = "2024" diff --git a/assets/sprites/interactive/crate_closed.png b/assets/sprites/interactive/crate_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..ca3e7d03427e27d767d65b73c83f4d65ebbdc762 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYe6k~CayA#8@b22Z1oOVwa#}JRs z^Lm2~shQKJlVu#hq45z;y{vCV$b{Wt~44$rjF6*2UngHtI BPeK3y literal 0 HcmV?d00001 diff --git a/assets/sprites/interactive/crate_opened.png b/assets/sprites/interactive/crate_opened.png new file mode 100644 index 0000000000000000000000000000000000000000..50d72f1ae51f156ab5b699f75828fe446ea949be GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Eu!3HE}2mdz#QjEnx?oJHr&dIz4at?aBIEHw1 zCZ{L}?zmz7@3{K@=MU=Kg3d0P#mr&JC!L_;E^Nxk&CJZ)yie$VLqy%jd+uy%63_n~ zw`X=T-UZb0T=-d9z?1YwZX*MO3$67)`4(n2rkbkXqJpfVu(-fj~oGlwYxf^iqb0ilQ881;z7$o?-BG^>bP0 Hl+XkKhR9#M literal 0 HcmV?d00001 diff --git a/assets/sprites/interactive/door_closed.png b/assets/sprites/interactive/door_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..40c36936132b393095e80ca0382855c23844b1c8 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^EI_Ql!3HEv&)kdyQjEnx?oJHr&dIz4a;!aF978lF zCMN)a$7Yj1^V2ea%x?sOPDWlHZAMkr$^Q-dCN-U`_YwUrHz%>B@SUy2VT+78b_Prg Y#ZKIJWtT5|2Q-Gk)78&qol`;+0I7c{3jhEB literal 0 HcmV?d00001 diff --git a/assets/sprites/interactive/door_opened.png b/assets/sprites/interactive/door_opened.png new file mode 100644 index 0000000000000000000000000000000000000000..694e25ecd0290323ef4ef621d311e81ba7288756 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a%?FVdQ&MBb@0KQ=-AOHXW literal 0 HcmV?d00001 diff --git a/assets/sprites/interactive/lamp.png b/assets/sprites/interactive/lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..f281be92485b94437baca18c97557c52a76501d8 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|!aZFaLo9le zQw}giy}I>3S$KWssuUOT!vYyAv;Y79ayB{Vm*f)H6hofGL#rmSG$cvc-7ehORHdhI ztSo2Ufe%cEYzf`Grw;Buym`YdzbO`au2W9*GF34#>}N4J_UqMjUZ52Wp00i_>zopr E09sHvGXMYp literal 0 HcmV?d00001 diff --git a/assets/sprites/interactive/padlock.png b/assets/sprites/interactive/padlock.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5d639b3093d3ad153a7f7f6805cbc7d0fbc312 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-S!3HFkynkm2q!^2X+?^QKos)S9t4psbmX2{IY%+6l7FLuH+pdJQKS3j3^P66`a978-h zlS{5{_<7#J`M{wA2M#RI_%T)E==b}@#uHY}>lC^!$n2&ou{GgJ)4?RhH602nZrfO= zGzca!ZhJKIhEjFG51>pSx0~()o(%>Q0=^t#(0s+Xahu>YU&VNJpbZS3u6{1-oD!M< DpCLG8 literal 0 HcmV?d00001 diff --git a/assets/sprites/items/choco_bar.png b/assets/sprites/items/choco_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..aba1fa7480605cccdd7e40ae283be6eb70d2ade7 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|dOcknLo9le z6C}PUoW1nH-mcQkY1aGw&(i`#{+ufKZ)<+|owU2b7308HQghfeG-v#||9OsN-tI*Y z!q>ct_;B-v>X-h7Z!C?OnGf@~?LI$K@|~@P^BnOhB0m4hIsYbWRJ-43cWGxdyS-7$ zq3f;7ZieY^CD`1TK_L$X+OYQ$gNsAv03;{l~xQiKReo44$rj JF6*2UngD8=BDeqm literal 0 HcmV?d00001 diff --git a/assets/sprites/level/floor.png b/assets/sprites/level/floor.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e25b688f4ec6488ed5c697e1476d59fc7dfce7 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!3HEhl+{lMQjEnx?oJHr&dIz4ax6Su978lF zCYM~@@bkO_V?ts=LPCJZpRVA8f4|?Ucslcgr;yQ{Mj%K%Uz~R6-4W&)8kcNsco-PY X@^N0T+@+iVG=ss@)z4*}Q$iB}2PrCu literal 0 HcmV?d00001 diff --git a/assets/sprites/level/stairs_base.png b/assets/sprites/level/stairs_base.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6eb246d308c364198640e9c6ad468bb7ef5588 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYe6k~CayA#8@b22Z191Tww#}JRs zwGAIZ*1)A_B%{l1%M)yuV`&@~ literal 0 HcmV?d00001 diff --git a/assets/sprites/level/wall.png b/assets/sprites/level/wall.png new file mode 100644 index 0000000000000000000000000000000000000000..a103fb58365231c2e8a6656bef701018f712f2d5 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Ts&PILo9le zQxXyqGFE2)x6i*A#TMic6l37*8?36VY&mNpZ=#a7x==#XOqag5JV4-M>N~aP$t^o6 gw#A7D3~CNBFz8*N~aP$t^o6 zw!>;X5|RrlAHM3ntRlH!ZDJQk^YVPT$#0n0fFM&a^3>r5)-<7=3=IDn4Q_i#>o5T= OWbkzLb6Mw<&;$Uo$TML8 literal 0 HcmV?d00001 diff --git a/assets/sprites/level/window.png b/assets/sprites/level/window.png new file mode 100644 index 0000000000000000000000000000000000000000..4e81bd169fe414981c9c0c88dc4cc8da37dc2517 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|G(BA$Lo9le zLxK!`o^N0c`DV8G!|m?ujhe{`hqSzyBuo>oGz2oUbu%)2`^qx4cCxEEP!ofvtDnm{ Hr-UW|5$7O= literal 0 HcmV?d00001 diff --git a/assets/sprites/player/player.png b/assets/sprites/player/player.png new file mode 100644 index 0000000000000000000000000000000000000000..7fad82084c44715a01246290fe1da6fa7f84bfa7 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4avD8d978-h zlM^IZdv>Ty5%Kw_{Q14DMRTZbm}AM=A3TXlr{-21I3Vp%sPKq&2a~WQ&qRX*&+FId z1q2!V^v_u!_~p=E_H>C(P9KrmoEtrh7!{{a5aDLo+pOm~>HbC212 impl Bundle { + ( + Camera2d, + Camera { + clear_color: ClearColorConfig::Custom(Color::hsl(0.02, 0.67, 0.65)), + ..default() + }, + Projection::Orthographic(OrthographicProjection { + scaling_mode: bevy::camera::ScalingMode::FixedVertical { + viewport_height: 384., + }, + scale: 1., + ..OrthographicProjection::default_2d() + }), + ) +} + +fn setup_global(mut commands: Commands) { + commands.spawn(camera_bundle()); +} + +impl Plugin for ExpeditionPlugin { + fn build(&self, app: &mut App) { + app.add_systems(Startup, (player::setup_player, setup_global)) + .add_systems(Update, player::handle_input); + } +} diff --git a/src/main.rs b/src/main.rs index e95b0dc..4f85e42 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,54 +1,10 @@ use bevy::prelude::*; -#[derive(Component)] -struct Person; - -#[derive(Component)] -struct Name(String); - -#[derive(Resource)] -struct GreetTimer(Timer); - -#[derive(Resource)] -struct UpdateTimer(Timer); - -pub struct HelloPlugin; - -impl Plugin for HelloPlugin { - fn build(&self, app: &mut App) { - app.insert_resource(GreetTimer(Timer::from_seconds(2.0, TimerMode::Repeating))); - app.insert_resource(UpdateTimer(Timer::from_seconds(10.0, TimerMode::Once))); - app.add_systems(Startup, add_people); - app.add_systems(Update, (update_people, greet_people).chain()); - } -} - - -fn add_people(mut commands: Commands) { - commands.spawn((Person, Name("Alkesey Mirnekov".to_string()))); - commands.spawn((Person, Name("Alkesey Mirnekov 2".to_string()))); - commands.spawn((Person, Name("Alkesey Mirnekov 3".to_string()))); -} - -fn greet_people(time: Res