Rotating filter
This commit is contained in:
parent
05ecbbbbec
commit
5ac4b4711c
6 changed files with 58 additions and 24 deletions
16
src/game.rs
16
src/game.rs
|
|
@ -184,7 +184,7 @@ fn collision_event_system(
|
|||
&mut Handle<ColorMaterial>,
|
||||
Option<&Player>,
|
||||
)>,
|
||||
pass_through_filter_query: Query<(&PassThroughFilter, &FilterColor)>,
|
||||
pass_through_filter_query: Query<&PassThroughFilter>,
|
||||
mut app_state: ResMut<State<AppState>>,
|
||||
audio: Res<crossbeam_channel::Sender<AudioMsg>>,
|
||||
) {
|
||||
|
|
@ -231,21 +231,11 @@ fn collision_event_system(
|
|||
audio.send(AudioMsg::Fusion).ok();
|
||||
}
|
||||
} else if *flags == CollisionEventFlags::SENSOR {
|
||||
if let (
|
||||
Ok((mut c_color, _c_transform, mut c_material, c_player)),
|
||||
Ok((filter, filter_color)),
|
||||
) = (
|
||||
if let (Ok((mut c_color, _c_transform, mut c_material, c_player)), Ok(filter)) = (
|
||||
character_query.get_mut(*e1),
|
||||
pass_through_filter_query.get(*e2),
|
||||
) {
|
||||
c_color.0 = match filter {
|
||||
PassThroughFilter::Absorbing => Vec4::from(c_color.0)
|
||||
.mul_add(
|
||||
-Vec4::from(filter_color.0) * Vec4::from([1., 1., 1., 0.]),
|
||||
Vec4::from(c_color.0),
|
||||
)
|
||||
.into(),
|
||||
};
|
||||
c_color.0 = filter.apply(c_color.0);
|
||||
*c_material = materials.add(ColorMaterial::from(c_color.0));
|
||||
|
||||
if c_player.is_some() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue