From d107626b326ddbc79c5192e577e81941ffbe0905 Mon Sep 17 00:00:00 2001 From: StephenAdamson Date: Tue, 17 Dec 2024 21:30:46 +0000 Subject: [PATCH] changeable z index, with occlusion --- assets/sky.png | Bin 5511 -> 5510 bytes src/game.rs | 2 +- src/main.rs | 11 +++++++++-- src/tile.rs | 32 +++++++++++++++++++++----------- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/assets/sky.png b/assets/sky.png index 81cc912093495f4776ec1ca3d3d9df54874876b6..4a37c7e99719d62ab93039d3d29db393c2265241 100644 GIT binary patch delta 1005 zcmVbfz!Z%zTHHD<+x#S#irIHF)Y&@RVcFYvhF|V6=ZJy-ee!vh3Ryl7A zFZm8R_O$NHazdB>W$5-)vD3$cT9 z>1e$z&uNML@t4FnYbHyW6GyXLuy>Bhkk38?9gWLjNY8}cg6sZLWyHk0kVMQP>5Nk5 zUy=$rAG3w2h)u2|Sl^al4B-N$igoT8?TT;z4A z>nO(#dfUw6@m9vLm;@04EBQ(b*eOIKh{PKAtv70urjv* z_EYG9RJfr&2=#$MgH4KbaTG>7Ye@Kxg$}pnaM#FV53v(enP7ix7S|t-@KwbzW-k#% zzjKAScy=eEhy?s|ff|U=SV`3*!Pj_yO|AlhdZgKLz#6x3n%I;c#U%%5fudqPyPm8s z14t2ED}o^bftX2@G9of&BSIn_fGR>qH}VDoq{mI8wCR>N+k7iws}1GTQqz{3HE*TW&RsehyytG+ zd+Bwj9i_CVUH81(?t9tmK&cHGY3Rtq!thZ>y{Rp%AI5)gP@_eS4^mUnZfcO4T_$LL zPINK@F-`>F25KON!k)~cQ%XF^O=kE#LRTmwNS$yxO=2LJc48fLvs>f>viMK91@nU& z|1G&N(S4EJM{d8O*5|K8JBXcaIFlL$-M9DbmA&rp)#BXYSN6jiK6~)H>&wu~(96)v z(96)v(906g|6oY)A6qZsCniJ1jP($N!Lw2W9t0#fW-u^gVlZYcW;rx9Ei_~{H!Wgj zW;HD|GcjZ^WHe)8F*Grgln1K|H!wFjG&eCZIWswvN(gfZGBG+bHaasjlf?)o2r@A` zGB!FhG_&&vD+459W;irAV`effIAS$9Ei_^^WG!K3WjHN4FkxX~WjJLvVmUdJp$Sb2 zH&ik)Ix;poGc>cA3}^@h%NQ`1lLZwa2NfD3WHvMqlPwi9Ck!tG1%QcxLNIE;r~#t} b3>E_bBk2NAEijcn00000NkvXXu0mjf-Ok8) delta 1004 zcmVpE6XF|B?t;$!k65BCj*NHEH^ zEWG6>+qRsx$e+I?##u92LZ3LA<$}3$Oon*&>F8)&mLk0ZdJ7)w$5w_$a(b^u#u!-q2jAAEASC0;Q~A@+fa>nFh9oT8KW<*?;I<_$T;Wb57eFs@|qv_ zjJ}ZXG`OjG-Z$hGYs`Q5_)|IQL($`g+;;e*WpB6T7rCX|#E#Ji++%bf>(DqwO&PJs z`%sUgtQqzlGm7h}jAk(hWUXT|TS4V#(C9nR&2c)y0#mXE%2* zUJDn&>st%zw0J3{Rv4|&T=8_phFT9k9oGMv;2r_&?`g6SmIK{vZiE^z&CxCQgY zjsKKfnCQMq?lZTaQS0+7(H60*3};ZIp!&|9y|UL6wpyGsd}Tk4;j0_JI=&UX6}=U` z6}=U`6}=M`{T~zw{;~BE{slTY#h;hWb>y>A10Dn zV=`ndVlZT7FkxjmWMwd9lamLl3pO=1GdVUmGBq?alSv432r)T2H8?soIg`W)CI~S( zIyE>tH952L2rC05GB`ChGBGtZEiqv+HZ3$UI5jO|V`eZdFg0RgI5|0GIXN~rlR*qm z2r)T2H8?soIkT7yXb1!}FCP(;1Qj6%6FNJQRK&oOEEO{+j1U6_fQf-ZFlxZ40iy;C a76Sk{B?48nku0eI0000) { } for x in -15..15 { for y in -15..15 { - let position = Vec3::new(x as f32 * TILE_SIZE, y as f32 * TILE_SIZE, -14.); + let position = Vec3::new(x as f32 * TILE_SIZE, y as f32 * TILE_SIZE, -39.); commands.spawn(TilePrefab::bedrock(position, asset_server)); } } diff --git a/src/main.rs b/src/main.rs index 269b272..bb0fe56 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,7 @@ mod tiles; fn main() { App::new() - .insert_resource(game::ZIndex(-5.0)) + .insert_resource(game::ZIndex(0.0)) .add_plugins( DefaultPlugins .set(WindowPlugin { @@ -33,7 +33,14 @@ fn main() { camera::camera_movement, citizen::citizen_movement, tile::tile_item_sprite_update, - // tile::camera_z_movement.chain(tile::tile_sprite_occlusion), + ), + ) + .init_resource::() + .add_systems( + FixedUpdate, + ( + tile::camera_z_movement, + tile::tile_sprite_occlusion.run_if(|camera_moved: Res| camera_moved.0), ), ) .add_systems(FixedUpdate, cursor::move_cursor) diff --git a/src/tile.rs b/src/tile.rs index a793da7..6d2eb44 100644 --- a/src/tile.rs +++ b/src/tile.rs @@ -55,17 +55,27 @@ pub struct DoorTile { pub locked: bool, } -// pub fn camera_z_movement( -// keyboard_input: Res>, -// mut z_index: ResMut, -// ) { -// if keyboard_input.pressed(KeyCode::ShiftLeft) { -// z_index.0 -= 1.0; -// } -// if keyboard_input.pressed(KeyCode::ShiftRight) { -// z_index.0 += 1.0; -// } -// } +#[derive(Resource, Default)] +pub struct CameraMoved(pub bool); + +// Modify camera_z_movement +pub fn camera_z_movement( + keyboard_input: Res>, + mut z_index: ResMut, + mut camera_moved: ResMut, +) { + camera_moved.0 = false; + if keyboard_input.pressed(KeyCode::ShiftLeft) { + z_index.0 -= 1.0; + z_index.0 = z_index.0.clamp(-39.0, 5.0); + camera_moved.0 = true; + } + if keyboard_input.pressed(KeyCode::ShiftRight) { + z_index.0 += 1.0; + z_index.0 = z_index.0.clamp(-39.0, 5.0); + camera_moved.0 = true; + } +} pub fn tile_sprite_occlusion( mut query: Query<(&mut Visibility, &Transform, &Tile), With>,