From 4fe1b24b1a5924245bdbe4a09e41bf9d5138a22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20Rom=C3=A1n=20N=C3=BA=C3=B1ez?= Date: Tue, 13 Oct 2026 08:24:45 +0000 Subject: [PATCH] Fix fighter material not removing the original material. (#92) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://git.eirexe.moe/EIREXE/shinespark/pulls/92 Co-authored-by: Álex Román Núñez --- src/materials/fighter_material.rs | 37 ++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/materials/fighter_material.rs b/src/materials/fighter_material.rs index e6ecb01..b9cb9c7 100644 --- a/src/materials/fighter_material.rs +++ b/src/materials/fighter_material.rs @@ -1,10 +1,17 @@ -use bevy::{gltf::GltfMaterialName, pbr::{ExtendedMaterial, MaterialExtension}, prelude::*, render::render_resource::AsBindGroup, shader::ShaderRef, world_serialization::WorldInstanceReady}; +use bevy::{ + gltf::GltfMaterialName, + pbr::{ExtendedMaterial, MaterialExtension}, + prelude::*, + render::render_resource::AsBindGroup, + shader::ShaderRef, + world_serialization::WorldInstanceReady, +}; pub type FighterMaterial = ExtendedMaterial; #[derive(Component)] pub struct FighterMesh { - pub fighter: Entity + pub fighter: Entity, } #[derive(Asset, AsBindGroup, Reflect, Debug, Clone, Default)] @@ -64,12 +71,22 @@ pub fn bind_fighter_material( continue; }; - commands.entity(entity).insert((MeshMaterial3d(asset_materials.add(ExtendedMaterial { - base: StandardMaterial { - // can be used in forward or deferred mode - ..original_material.clone() - }, - extension: FighterMaterialExtension::new(bevy::color::palettes::css::BLUE.into()) - })), FighterMesh { fighter: scene_ready.entity })); + commands + .entity(entity) + .remove::>() + .insert(( + MeshMaterial3d(asset_materials.add(ExtendedMaterial { + base: StandardMaterial { + // can be used in forward or deferred mode + ..original_material.clone() + }, + extension: FighterMaterialExtension::new( + bevy::color::palettes::css::BLUE.into(), + ), + })), + FighterMesh { + fighter: scene_ready.entity, + }, + )); } -} \ No newline at end of file +}