Constconst [bloodEffects, setBloodEffects] = useState<BloodSplatterEffect[]>([]);
// On hit event
const handleHit = (position: [number, number, number], direction: [number, number, number]) => {
setBloodEffects([...bloodEffects, {
id: generateId(),
position,
direction,
intensity: 0.8,
startTime: Date.now(),
}]);
};
<BloodParticles3D
effects={bloodEffects}
enabled={violenceSettings.blood}
isMobile={isMobile}
onEffectComplete={(id) => {
setBloodEffects(prev => prev.filter(e => e.id !== id));
}}
/>
BloodParticles3D Component
Renders realistic blood splatter effects using physics-based particle simulation. Optimized for performance with instanced rendering and efficient physics updates.