Skip to content

Rename CharacterMotionConfigForPlatformerExample to `CharacterMotio… #208

Rename CharacterMotionConfigForPlatformerExample to `CharacterMotio…

Rename CharacterMotionConfigForPlatformerExample to `CharacterMotio… #208

Triggered via push February 18, 2024 17:24
Status Failure
Total duration 12m 53s
Artifacts

ci.yml

on: push
Matrix: Tests
Update Docs and Demos in GitHub Pages
11m 30s
Update Docs and Demos in GitHub Pages
Rustfmt
5s
Rustfmt
Fit to window
Zoom out
Zoom in

Annotations

1 error and 103 warnings
Rustfmt
The process '/home/runner/.cargo/bin/cargo' failed with exit code 1
Rustfmt
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Rustfmt
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
returning the result of a `let` binding from a block: demos/examples/shooter_like.rs#L295
warning: returning the result of a `let` binding from a block --> demos/examples/shooter_like.rs:295:9 | 178 | / let command_altering_selectors = CommandAlteringSelectors::default() 179 | | // By default Tnua uses a raycast, but this could be a problem if the character stands 180 | | // just past the edge while part of its body is above the platform. To solve this, we 181 | | // need to cast a shape - which is physics-engine specific. We set the shape using a ... | 275 | | }, 276 | | ); | |______________- unnecessary `let` binding ... 295 | command_altering_selectors | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 178 ~ 179 | #[cfg(feature = "rapier3d")] ... 196 | ); 197 ~ CommandAlteringSelectors::default() 198 + // By default Tnua uses a raycast, but this could be a problem if the character stands 199 + // just past the edge while part of its body is above the platform. To solve this, we 200 + // need to cast a shape - which is physics-engine specific. We set the shape using a 201 + // component. 202 + .with_combo( 203 + "Sensor Shape", 204 + 1, 205 + &[ 206 + ("no", |mut cmd| { 207 + #[cfg(feature = "rapier3d")] 208 + cmd.remove::<TnuaRapier3dSensorShape>(); 209 + #[cfg(feature = "xpbd3d")] 210 + cmd.remove::<TnuaXpbd3dSensorShape>(); 211 + }), 212 + ("flat (underfit)", |mut cmd| { 213 + #[cfg(feature = "rapier3d")] 214 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 215 + 0.0, 0.49, 216 + ))); 217 + #[cfg(feature = "xpbd3d")] 218 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.49))); 219 + }), 220 + ("flat (exact)", |mut cmd| { 221 + #[cfg(feature = "rapier3d")] 222 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 223 + 0.0, 0.5, 224 + ))); 225 + #[cfg(feature = "xpbd3d")] 226 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.5))); 227 + }), 228 + ("flat (overfit)", |mut cmd| { 229 + #[cfg(feature = "rapier3d")] 230 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 231 + 0.0, 0.51, 232 + ))); 233 + #[cfg(feature = "xpbd3d")] 234 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.51))); 235 + }), 236 + ("ball (underfit)", |mut cmd| { 237 + #[cfg(feature = "rapier3d")] 238 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::ball(0.49))); 239 + #[cfg(feature = "xpbd3d")] 240 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::ball(0.49))); 241 + }), 242 + ("ball (exact)", |mut cmd| { 243 + #[cfg(feature = "rapier3d")] 244 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::ball(0.5))); 245 + #[cfg(feature = "xpbd3d")] 246 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::ball(0.5))); 247 + }), 248 + ], 249 + ) 250 + .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { 251 + // Tnua will automatically apply angular impulses/forces to fix the tilt and make 252 + // the character stand upward, but it is also possible to just let the physics 253 + // engine prevent rotation (other than around the Y axis, for turning) 254 + if lock_tilt { 255 + #[cfg(feature = "rapier3d")] 256 + cmd.insert( 257 + rapier::LockedAxes::ROTATION_LOCKED_X 258 + | rapier::LockedAxes::ROTATION_LOCKED_Z, 259 + ); 260 + #[cfg(feature = "xpbd3d")] 261 + cmd.insert(xpbd::LockedAxes::new().lock_rotation_x().lock_rotation_z()); 262 + } else { 263 + #[cfg(feature = "rapier3d")] 264 + cmd.insert(rapier::LockedAxes::empty()); 265 + #[cfg(feature = "xpbd3d")] 266 + cmd.insert(xpbd::LockedAxes::new()); 267 + } 268 + }) 269 + .with_checkbox( 270 + "Phase Through Collision Groups", 271 + true, 272 + |mut cmd, use_collision_groups| { 273 + #[cfg(feature = "rapier3d")] 274 + if use_collision_groups { 275 + cmd.insert(CollisionGroups { 276 + memberships: Group::GROUP_2, 277 + filters: Group::GROUP_2, 278 + }); 279 + } else { 280 + cmd.insert(CollisionGroups { 281 + memberships: Group::ALL, 282 + filters: Group::ALL, 283 + }); 284 + } 285 + #[cfg(feature = "xpbd3d")] 286 + { 287 + let player_layers: &[LayerNames] = if use_collision_groups { 288 + &[LayerNames::Player] 289 + } else { 290 + &[LayerNames::Player, LayerNames::PhaseThrough] 291 + }; 292 + cmd.insert(CollisionLayers::new(player_layers, player_layers)); 293 + } 294 + }, 295 + ) |
variable does not need to be mutable: demos/examples/shooter_like.rs#L253
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:253:18 | 253 | |mut cmd, use_collision_groups| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L231
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:231:48 | 231 | .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L223
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:223:39 | 223 | ("ball (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L217
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:217:42 | 217 | ("ball (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L209
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:209:41 | 209 | ("flat (overfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L201
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:201:39 | 201 | ("flat (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L193
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:193:42 | 193 | ("flat (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/shooter_like.rs#L187
warning: variable does not need to be mutable --> demos/examples/shooter_like.rs:187:29 | 187 | ("no", |mut cmd| { | ----^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused variable: `cmd`: demos/examples/shooter_like.rs#L299
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:299:56 | 299 | cmd.insert(TnuaCrouchEnforcer::new(0.5 * Vec3::Y, |cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `use_collision_groups`: demos/examples/shooter_like.rs#L253
warning: unused variable: `use_collision_groups` --> demos/examples/shooter_like.rs:253:27 | 253 | |mut cmd, use_collision_groups| { | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_collision_groups`
unused variable: `cmd`: demos/examples/shooter_like.rs#L253
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:253:22 | 253 | |mut cmd, use_collision_groups| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L231
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:231:52 | 231 | .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L223
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:223:43 | 223 | ("ball (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L217
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:217:46 | 217 | ("ball (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L209
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:209:45 | 209 | ("flat (overfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L201
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:201:43 | 201 | ("flat (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L193
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:193:46 | 193 | ("flat (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/shooter_like.rs#L187
warning: unused variable: `cmd` --> demos/examples/shooter_like.rs:187:33 | 187 | ("no", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` | = note: `#[warn(unused_variables)]` on by default
returning the result of a `let` binding from a block: demos/examples/platformer_2d.rs#L263
warning: returning the result of a `let` binding from a block --> demos/examples/platformer_2d.rs:263:9 | 153 | / let command_altering_selectors = CommandAlteringSelectors::default() 154 | | // By default Tnua uses a raycast, but this could be a problem if the character stands 155 | | // just past the edge while part of its body is above the platform. To solve this, we 156 | | // need to cast a shape - which is physics-engine specific. We set the shape using a ... | 241 | | }, 242 | | ); | |______________- unnecessary `let` binding ... 263 | command_altering_selectors | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 153 ~ 154 | #[cfg(feature = "rapier2d")] ... 173 | ); 174 ~ CommandAlteringSelectors::default() 175 + // By default Tnua uses a raycast, but this could be a problem if the character stands 176 + // just past the edge while part of its body is above the platform. To solve this, we 177 + // need to cast a shape - which is physics-engine specific. We set the shape using a 178 + // component. 179 + .with_combo( 180 + "Sensor Shape", 181 + 1, 182 + &[ 183 + ("Point", |mut cmd| { 184 + #[cfg(feature = "rapier2d")] 185 + cmd.remove::<TnuaRapier2dSensorShape>(); 186 + #[cfg(feature = "xpbd2d")] 187 + cmd.remove::<TnuaXpbd2dSensorShape>(); 188 + }), 189 + ("Flat (underfit)", |mut cmd| { 190 + #[cfg(feature = "rapier2d")] 191 + cmd.insert(TnuaRapier2dSensorShape(rapier::Collider::cuboid(0.49, 0.0))); 192 + #[cfg(feature = "xpbd2d")] 193 + cmd.insert(TnuaXpbd2dSensorShape(xpbd::Collider::cuboid(0.99, 0.0))); 194 + }), 195 + ("Flat (exact)", |mut cmd| { 196 + #[cfg(feature = "rapier2d")] 197 + cmd.insert(TnuaRapier2dSensorShape(rapier::Collider::cuboid(0.5, 0.0))); 198 + #[cfg(feature = "xpbd2d")] 199 + cmd.insert(TnuaXpbd2dSensorShape(xpbd::Collider::cuboid(1.0, 0.0))); 200 + }), 201 + ("flat (overfit)", |mut cmd| { 202 + #[cfg(feature = "rapier2d")] 203 + cmd.insert(TnuaRapier2dSensorShape(rapier::Collider::cuboid(0.51, 0.0))); 204 + #[cfg(feature = "xpbd2d")] 205 + cmd.insert(TnuaXpbd2dSensorShape(xpbd::Collider::cuboid(1.01, 0.0))); 206 + }), 207 + ("Ball (underfit)", |mut cmd| { 208 + #[cfg(feature = "rapier2d")] 209 + cmd.insert(TnuaRapier2dSensorShape(rapier::Collider::ball(0.49))); 210 + #[cfg(feature = "xpbd2d")] 211 + cmd.insert(TnuaXpbd2dSensorShape(xpbd::Collider::ball(0.49))); 212 + }), 213 + ("Ball (exact)", |mut cmd| { 214 + #[cfg(feature = "rapier2d")] 215 + cmd.insert(TnuaRapier2dSensorShape(rapier::Collider::ball(0.5))); 216 + #[cfg(feature = "xpbd2d")] 217 + cmd.insert(TnuaXpbd2dSensorShape(xpbd::Collider::ball(0.5))); 218 + }), 219 + ], 220 + ) 221 + .with_checkbox("Lock Tilt", false, |mut cmd, lock_tilt| { 222 + // Tnua will automatically apply angular impulses/forces to fix the tilt and make 223 + // the character stand upward, but it is also possible to just let the physics 224 + // engine prevent rotation (other than around the Y axis, for turning) 225 + if lock_tilt { 226 + #[cfg(feature = "rapier2d")] 227 + cmd.insert(rapier::LockedAxes::ROTATION_LOCKED); 228 + #[cfg(feature = "xpbd2d")] 229 + cmd.insert(xpbd::LockedAxes::new().lock_rotation()); 230 + } else { 231 + #[cfg(feature = "rapier2d")] 232 + cmd.insert(rapier::LockedAxes::empty()); 233 + #[cfg(feature = "xpbd2d")] 234 + cmd.insert(xpbd::LockedAxes::new()); 235 + } 236 + }) 237 + .with_checkbox( 238 + "Phase Through Collision Groups", 239 + true, 240 + |mut cmd, use_collision_groups| { 241 + #[cfg(feature = "rapier2d")] 242 + if use_collision_groups { 243 + cmd.insert(CollisionGroups { 244 + memberships: Group::GROUP_2, 245 + filters: Group::GROUP_2, 246 + }); 247 + } else { 248 + cmd.insert(CollisionGroups { 249 + memberships: Group::ALL, 250 + filters: Group::ALL, 251 + }); 252 + } 253 + #[cfg(feature = "xpbd2d")] 254 + { 255 + let player_layers: &[LayerNames] = if use_collision_groups { 256 + &[LayerNames::Player] 257 + } else { 258 + &[LayerNames::Player, LayerNames::PhaseThrough] 259 + }; 260 + cmd.insert(CollisionLayers::new(player_layers, player_layers)); 261 + } 262 + }, 263 + ) |
variable does not need to be mutable: demos/examples/platformer_2d.rs#L219
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:219:18 | 219 | |mut cmd, use_collision_groups| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L200
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:200:49 | 200 | .with_checkbox("Lock Tilt", false, |mut cmd, lock_tilt| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L192
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:192:39 | 192 | ("Ball (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L186
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:186:42 | 186 | ("Ball (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L180
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:180:41 | 180 | ("flat (overfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L174
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:174:39 | 174 | ("Flat (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L168
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:168:42 | 168 | ("Flat (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_2d.rs#L162
warning: variable does not need to be mutable --> demos/examples/platformer_2d.rs:162:32 | 162 | ("Point", |mut cmd| { | ----^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused variable: `cmd`: demos/examples/platformer_2d.rs#L267
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:267:56 | 267 | cmd.insert(TnuaCrouchEnforcer::new(0.5 * Vec3::Y, |cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `use_collision_groups`: demos/examples/platformer_2d.rs#L219
warning: unused variable: `use_collision_groups` --> demos/examples/platformer_2d.rs:219:27 | 219 | |mut cmd, use_collision_groups| { | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_collision_groups`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L219
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:219:22 | 219 | |mut cmd, use_collision_groups| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L200
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:200:53 | 200 | .with_checkbox("Lock Tilt", false, |mut cmd, lock_tilt| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L192
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:192:43 | 192 | ("Ball (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L186
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:186:46 | 186 | ("Ball (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L180
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:180:45 | 180 | ("flat (overfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L174
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:174:43 | 174 | ("Flat (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L168
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:168:46 | 168 | ("Flat (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_2d.rs#L162
warning: unused variable: `cmd` --> demos/examples/platformer_2d.rs:162:36 | 162 | ("Point", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` | = note: `#[warn(unused_variables)]` on by default
associated function `make_system` is never used: demos/src/moving_platform.rs#L62
warning: associated function `make_system` is never used --> demos/src/moving_platform.rs:62:8 | 53 | impl MovingPlatform { | ------------------- associated function in this implementation ... 62 | fn make_system<V: Component>( | ^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused variable: `setting_from_ui`: demos/src/ui/mod.rs#L192
warning: unused variable: `setting_from_ui` --> demos/src/ui/mod.rs:192:5 | 192 | setting_from_ui: Res<DemoUiPhysicsBackendActive>, | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setting_from_ui`
unused variable: `app`: demos/src/moving_platform.rs#L6
warning: unused variable: `app` --> demos/src/moving_platform.rs:6:21 | 6 | fn build(&self, app: &mut App) { | ^^^ help: if this is intentional, prefix it with an underscore: `_app` | = note: `#[warn(unused_variables)]` on by default
returning the result of a `let` binding from a block: demos/examples/platformer_3d.rs#L289
warning: returning the result of a `let` binding from a block --> demos/examples/platformer_3d.rs:289:9 | 172 | / let command_altering_selectors = CommandAlteringSelectors::default() 173 | | // By default Tnua uses a raycast, but this could be a problem if the character stands 174 | | // just past the edge while part of its body is above the platform. To solve this, we 175 | | // need to cast a shape - which is physics-engine specific. We set the shape using a ... | 269 | | }, 270 | | ); | |______________- unnecessary `let` binding ... 289 | command_altering_selectors | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 172 ~ 173 | #[cfg(feature = "rapier3d")] ... 190 | ); 191 ~ CommandAlteringSelectors::default() 192 + // By default Tnua uses a raycast, but this could be a problem if the character stands 193 + // just past the edge while part of its body is above the platform. To solve this, we 194 + // need to cast a shape - which is physics-engine specific. We set the shape using a 195 + // component. 196 + .with_combo( 197 + "Sensor Shape", 198 + 1, 199 + &[ 200 + ("no", |mut cmd| { 201 + #[cfg(feature = "rapier3d")] 202 + cmd.remove::<TnuaRapier3dSensorShape>(); 203 + #[cfg(feature = "xpbd3d")] 204 + cmd.remove::<TnuaXpbd3dSensorShape>(); 205 + }), 206 + ("flat (underfit)", |mut cmd| { 207 + #[cfg(feature = "rapier3d")] 208 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 209 + 0.0, 0.49, 210 + ))); 211 + #[cfg(feature = "xpbd3d")] 212 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.49))); 213 + }), 214 + ("flat (exact)", |mut cmd| { 215 + #[cfg(feature = "rapier3d")] 216 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 217 + 0.0, 0.5, 218 + ))); 219 + #[cfg(feature = "xpbd3d")] 220 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.5))); 221 + }), 222 + ("flat (overfit)", |mut cmd| { 223 + #[cfg(feature = "rapier3d")] 224 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::cylinder( 225 + 0.0, 0.51, 226 + ))); 227 + #[cfg(feature = "xpbd3d")] 228 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::cylinder(0.0, 0.51))); 229 + }), 230 + ("ball (underfit)", |mut cmd| { 231 + #[cfg(feature = "rapier3d")] 232 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::ball(0.49))); 233 + #[cfg(feature = "xpbd3d")] 234 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::ball(0.49))); 235 + }), 236 + ("ball (exact)", |mut cmd| { 237 + #[cfg(feature = "rapier3d")] 238 + cmd.insert(TnuaRapier3dSensorShape(rapier::Collider::ball(0.5))); 239 + #[cfg(feature = "xpbd3d")] 240 + cmd.insert(TnuaXpbd3dSensorShape(xpbd::Collider::ball(0.5))); 241 + }), 242 + ], 243 + ) 244 + .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { 245 + // Tnua will automatically apply angular impulses/forces to fix the tilt and make 246 + // the character stand upward, but it is also possible to just let the physics 247 + // engine prevent rotation (other than around the Y axis, for turning) 248 + if lock_tilt { 249 + #[cfg(feature = "rapier3d")] 250 + cmd.insert( 251 + rapier::LockedAxes::ROTATION_LOCKED_X 252 + | rapier::LockedAxes::ROTATION_LOCKED_Z, 253 + ); 254 + #[cfg(feature = "xpbd3d")] 255 + cmd.insert(xpbd::LockedAxes::new().lock_rotation_x().lock_rotation_z()); 256 + } else { 257 + #[cfg(feature = "rapier3d")] 258 + cmd.insert(rapier::LockedAxes::empty()); 259 + #[cfg(feature = "xpbd3d")] 260 + cmd.insert(xpbd::LockedAxes::new()); 261 + } 262 + }) 263 + .with_checkbox( 264 + "Phase Through Collision Groups", 265 + true, 266 + |mut cmd, use_collision_groups| { 267 + #[cfg(feature = "rapier3d")] 268 + if use_collision_groups { 269 + cmd.insert(CollisionGroups { 270 + memberships: Group::GROUP_2, 271 + filters: Group::GROUP_2, 272 + }); 273 + } else { 274 + cmd.insert(CollisionGroups { 275 + memberships: Group::ALL, 276 + filters: Group::ALL, 277 + }); 278 + } 279 + #[cfg(feature = "xpbd3d")] 280 + { 281 + let player_layers: &[LayerNames] = if use_collision_groups { 282 + &[LayerNames::Player] 283 + } else { 284 + &[LayerNames::Player, LayerNames::PhaseThrough] 285 + }; 286 + cmd.insert(CollisionLayers::new(player_layers, player_layers)); 287 + } 288 + }, 289 + ) |
variable does not need to be mutable: demos/examples/platformer_3d.rs#L247
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:247:18 | 247 | |mut cmd, use_collision_groups| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L225
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:225:48 | 225 | .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L217
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:217:39 | 217 | ("ball (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L211
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:211:42 | 211 | ("ball (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L203
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:203:41 | 203 | ("flat (overfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L195
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:195:39 | 195 | ("flat (exact)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L187
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:187:42 | 187 | ("flat (underfit)", |mut cmd| { | ----^^^ | | | help: remove this `mut`
variable does not need to be mutable: demos/examples/platformer_3d.rs#L181
warning: variable does not need to be mutable --> demos/examples/platformer_3d.rs:181:29 | 181 | ("no", |mut cmd| { | ----^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default
unused variable: `cmd`: demos/examples/platformer_3d.rs#L293
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:293:56 | 293 | cmd.insert(TnuaCrouchEnforcer::new(0.5 * Vec3::Y, |cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `use_collision_groups`: demos/examples/platformer_3d.rs#L247
warning: unused variable: `use_collision_groups` --> demos/examples/platformer_3d.rs:247:27 | 247 | |mut cmd, use_collision_groups| { | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_collision_groups`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L247
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:247:22 | 247 | |mut cmd, use_collision_groups| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L225
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:225:52 | 225 | .with_checkbox("Lock Tilt", true, |mut cmd, lock_tilt| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L217
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:217:43 | 217 | ("ball (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L211
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:211:46 | 211 | ("ball (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L203
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:203:45 | 203 | ("flat (overfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L195
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:195:43 | 195 | ("flat (exact)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L187
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:187:46 | 187 | ("flat (underfit)", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
unused variable: `cmd`: demos/examples/platformer_3d.rs#L181
warning: unused variable: `cmd` --> demos/examples/platformer_3d.rs:181:33 | 181 | ("no", |mut cmd| { | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` | = note: `#[warn(unused_variables)]` on by default
unused import: `make_update_plot_data_system`: demos/src/ui/mod.rs#L14
warning: unused import: `make_update_plot_data_system` --> demos/src/ui/mod.rs:14:22 | 14 | use self::plotting::{make_update_plot_data_system, plot_source_rolling_update}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
associated function `make_system` is never used: demos/src/moving_platform.rs#L62
warning: associated function `make_system` is never used --> demos/src/moving_platform.rs:62:8 | 53 | impl MovingPlatform { | ------------------- associated function in this implementation ... 62 | fn make_system<V: Component>( | ^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
unused variable: `setting_from_ui`: demos/src/ui/mod.rs#L192
warning: unused variable: `setting_from_ui` --> demos/src/ui/mod.rs:192:5 | 192 | setting_from_ui: Res<DemoUiPhysicsBackendActive>, | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setting_from_ui`
unused variable: `app`: demos/src/moving_platform.rs#L6
warning: unused variable: `app` --> demos/src/moving_platform.rs:6:21 | 6 | fn build(&self, app: &mut App) { | ^^^ help: if this is intentional, prefix it with an underscore: `_app` | = note: `#[warn(unused_variables)]` on by default
unused import: `make_update_plot_data_system`: demos/src/ui/mod.rs#L14
warning: unused import: `make_update_plot_data_system` --> demos/src/ui/mod.rs:14:22 | 14 | use self::plotting::{make_update_plot_data_system, plot_source_rolling_update}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
Clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1, actions-rs/clippy-check@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Clippy
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1, actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, 1.76.0)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Tests (ubuntu-latest, 1.76.0)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (ubuntu-latest, 1.76.0)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, 1.76.0)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, 1.76.0)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, 1.76.0)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, nightly)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Tests (ubuntu-latest, nightly)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (ubuntu-latest, nightly)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, nightly)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, nightly)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (ubuntu-latest, nightly)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Docs
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Docs
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions/cache@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Docs
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Docs
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Docs
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Docs
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Update Docs and Demos in GitHub Pages
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, jetli/wasm-bindgen-action@v0.1.0, actions-rs/toolchain@v1, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Update Docs and Demos in GitHub Pages
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, jetli/wasm-bindgen-action@v0.1.0, actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Update Docs and Demos in GitHub Pages
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Update Docs and Demos in GitHub Pages
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Update Docs and Demos in GitHub Pages
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Update Docs and Demos in GitHub Pages
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
deploy-ghpages
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/deploy-pages@v2. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
deploy-ghpages
Uploaded artifact size of 1559152640 bytes exceeds the allowed size of 1 GB. Deployment might fail.