From 72db7fe14d38f44c26180890dd0459c33f78d097 Mon Sep 17 00:00:00 2001 From: VirxEC Date: Fri, 17 May 2024 03:22:03 -0400 Subject: [PATCH] Packet interpolation toggle, off by default Boost transparent by default in case it's never updated Boosting effect triggered by lowering of the boost amount between ticks --- Cargo.lock | 160 +++++++++++++++++++++++++++-------------------------- Cargo.toml | 2 +- src/gui.rs | 14 ++++- src/udp.rs | 23 +++++--- 4 files changed, 112 insertions(+), 87 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d95e4a..5dd0bb6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f90148830dac590fac7ccfe78ec4a8ea404c60f75a24e16407a71f0f40de775" +checksum = "2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -226,12 +226,11 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.3.0", "event-listener-strategy 0.5.2", "futures-core", "pin-project-lite", @@ -374,7 +373,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -398,7 +397,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -446,7 +445,7 @@ checksum = "f0e01f8343f391e2d6a63b368b82fb5b252ed43c8713fc87f9a8f2d59407dd00" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -494,7 +493,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -549,7 +548,7 @@ checksum = "fa29be733a02a5d7ca4507ef15f294711c1a0884b9a9a2730640ff4e7d0200ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -593,7 +592,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -685,7 +684,7 @@ dependencies = [ "proc-macro2", "quote", "rustc-hash", - "syn 2.0.60", + "syn 2.0.64", "toml_edit", ] @@ -859,7 +858,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", "uuid", ] @@ -917,7 +916,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -1085,7 +1084,7 @@ checksum = "bef158627f30503d5c18c20c60b444829f698d343516eeaf6eeee078c9a45163" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -1268,9 +1267,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" dependencies = [ "bytemuck_derive", ] @@ -1283,7 +1282,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -1326,9 +1325,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.96" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" +checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" dependencies = [ "jobserver", "libc", @@ -1673,7 +1672,7 @@ checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -1699,18 +1698,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "erased-serde" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3" +checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" dependencies = [ "serde", + "typeid", ] [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1828,7 +1828,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -2138,7 +2138,7 @@ dependencies = [ "libflate", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -2237,9 +2237,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.154" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libflate" @@ -2298,9 +2298,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" @@ -2505,7 +2505,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -2647,9 +2647,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owned_ttf_parser" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" +checksum = "6b41438d2fc63c46c74a2203bf5ccd82c41ba04347b2fcf5754f230b167067d5" dependencies = [ "ttf-parser", ] @@ -2685,9 +2685,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "percent-encoding" @@ -2697,9 +2697,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", "indexmap", @@ -2713,9 +2713,9 @@ checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" dependencies = [ "atomic-waker", "fastrand", @@ -2782,9 +2782,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -2928,7 +2928,7 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] name = "rlviser" -version = "0.7.0" +version = "0.7.1" dependencies = [ "ahash", "bevy", @@ -2992,9 +2992,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -3032,29 +3032,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.200" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.200" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -3130,9 +3130,9 @@ dependencies = [ [[package]] name = "smol_str" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" dependencies = [ "serde", ] @@ -3169,9 +3169,9 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" [[package]] name = "svg_fmt" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499" +checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" [[package]] name = "syn" @@ -3186,9 +3186,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.60" +version = "2.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f" dependencies = [ "proc-macro2", "quote", @@ -3197,9 +3197,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.11" +version = "0.30.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87341a165d73787554941cd5ef55ad728011566fe714e987d1b976c15dbc3a83" +checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae" dependencies = [ "cfg-if", "core-foundation-sys", @@ -3232,22 +3232,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -3313,9 +3313,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" [[package]] name = "toml_edit" @@ -3347,7 +3347,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] [[package]] @@ -3413,9 +3413,9 @@ dependencies = [ [[package]] name = "ttf-parser" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" +checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" [[package]] name = "twox-hash" @@ -3427,6 +3427,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "typeid" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -3536,7 +3542,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", "wasm-bindgen-shared", ] @@ -3570,7 +3576,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4262,20 +4268,20 @@ checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "zerocopy" -version = "0.7.33" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "087eca3c1eaf8c47b94d02790dd086cd594b912d2043d4de4bfdd466b3befb7c" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.33" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4b6c273f496d8fd4eaf18853e6b448760225dc030ff2c485a786859aea6393" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.64", ] diff --git a/Cargo.toml b/Cargo.toml index b1cb42d..74c0c40 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -version = "0.7.0" +version = "0.7.1" name = "rlviser" edition = "2021" publish = false diff --git a/src/gui.rs b/src/gui.rs index 3fad5f7..2b3dc91 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -5,7 +5,7 @@ use crate::{ renderer::{DoRendering, RenderGroups}, rocketsim::GameState, spectator::SpectatorSettings, - udp::{Connection, PausedUpdate, SpeedUpdate, UdpPacketTypes}, + udp::{Connection, Interpolation, PausedUpdate, SpeedUpdate, UdpPacketTypes}, }; use ahash::AHashMap; use bevy::{ @@ -119,6 +119,7 @@ impl Plugin for DebugOverlayPlugin { update_sensitivity, update_allow_rendering, update_render_info, + update_interpolation, update_ball_info.run_if(resource_equals(EnableBallInfo(true))), update_car_info.run_if(|enable_menu: Res| !enable_menu.0.is_empty()), update_boost_pad_info.run_if(|enable_menu: Res| !enable_menu.0.is_empty()), @@ -774,6 +775,7 @@ struct Options { paused: bool, mouse_sensitivity: f32, allow_rendering: bool, + interpolation: bool, } impl Default for Options { @@ -797,6 +799,7 @@ impl Default for Options { paused: false, mouse_sensitivity: 1., allow_rendering: true, + interpolation: false, } } } @@ -842,6 +845,7 @@ impl Options { "paused" => options.paused = value.parse().unwrap(), "mouse_sensitivity" => options.mouse_sensitivity = value.parse().unwrap(), "allow_rendering" => options.allow_rendering = value.parse().unwrap(), + "interpolation" => options.interpolation = value.parse().unwrap(), _ => println!("Unknown key {key} with value {value}"), } } @@ -878,6 +882,7 @@ impl Options { file.write_fmt(format_args!("paused={}\n", self.paused))?; file.write_fmt(format_args!("mouse_sensitivity={}\n", self.mouse_sensitivity))?; file.write_fmt(format_args!("allow_rendering={}\n", self.allow_rendering))?; + file.write_fmt(format_args!("interpolation={}\n", self.interpolation))?; Ok(()) } @@ -901,6 +906,7 @@ impl Options { || self.paused != other.paused || self.mouse_sensitivity != other.mouse_sensitivity || self.allow_rendering != other.allow_rendering + || self.interpolation != other.interpolation } } @@ -1015,6 +1021,8 @@ fn ui_system( ui.checkbox(&mut options.paused, "Paused"); }); + ui.checkbox(&mut options.interpolation, "Packet Interpolation"); + ui.menu_button("Open rendering manager", |ui| { ui.checkbox(&mut options.allow_rendering, "Allow rendering"); @@ -1076,6 +1084,10 @@ fn read_paused_update_event( } } +fn update_interpolation(options: Res, mut interpolation: ResMut) { + interpolation.0 = options.interpolation; +} + fn update_speed( options: Res, socket: Res, diff --git a/src/udp.rs b/src/udp.rs index 3245f48..2d5a44a 100644 --- a/src/udp.rs +++ b/src/udp.rs @@ -9,6 +9,7 @@ use crate::{ rocketsim::{CarInfo, GameMode, GameState, Team}, LoadState, ServerPort, }; +use ahash::HashMap; use bevy::{ app::AppExit, math::{Mat3A, Vec3A}, @@ -272,7 +273,7 @@ fn spawn_car( PbrBundle { mesh: meshes.add(Cylinder::new(10., CAR_BOOST_LENGTH)), material: materials.add(StandardMaterial { - base_color: Color::rgb(1., 1., 0.), + base_color: Color::rgba(1., 1., 0., 0.), alpha_mode: AlphaMode::Add, cull_mode: None, ..default() @@ -567,6 +568,7 @@ fn update_car_extra( mut materials: ResMut>, mut last_boost_states: Local>, mut last_demoed_states: Local>, + mut last_boost_amounts: Local>, ) { for (car, children) in &mut cars { let Some(target_car) = state.cars.iter().find(|car_info| car.0 == car_info.id) else { @@ -591,8 +593,13 @@ fn update_car_extra( } } - let is_boosting = - !target_car.state.is_demoed && target_car.state.last_controls.boost && target_car.state.boost > f32::EPSILON; + let last_boost_amount = last_boost_amounts + .insert(car.id(), target_car.state.boost) + .unwrap_or_default(); + + let is_boosting = !target_car.state.is_demoed + && target_car.state.boost > f32::EPSILON + && (target_car.state.last_controls.boost || last_boost_amount > target_car.state.boost); let last_boosted = last_boost_states.iter().any(|&id| id == car.id()); if is_boosting != last_boosted { @@ -1126,6 +1133,9 @@ fn listen(socket: Res, key: Res>, mut game_stat } } +#[derive(Resource)] +pub struct Interpolation(pub bool); + #[derive(Resource)] struct PacketUpdated(bool); @@ -1137,6 +1147,7 @@ impl Plugin for RocketSimPlugin { .add_event::() .insert_resource(GameState::default()) .insert_resource(DirectorTimer(Timer::new(Duration::from_secs(12), TimerMode::Repeating))) + .insert_resource(Interpolation(false)) .insert_resource(PacketUpdated(false)) .insert_resource(GameMode::default()) .add_plugins(UdpRendererPlugin) @@ -1165,11 +1176,7 @@ impl Plugin for RocketSimPlugin { (update_ball, (update_car, post_update_car).chain(), update_car_wheels), ) .chain() - .run_if( - |updated: Res, key: Res>| { - !updated.0 && !key.pressed(KeyCode::KeyI) - }, - ), + .run_if(|updated: Res, ip: Res| !updated.0 && ip.0), (listen, update_boost_meter), ), )