Constconst [dustEffects, setDustEffects] = useState<DustCloudEffect[]>([]);
// On footfall
const handleFootfall = (position: [number, number, number]) => {
setDustEffects([...dustEffects, {
id: generateId(),
position,
intensity: 0.5,
type: 'footfall',
startTime: Date.now(),
}]);
};
<DustClouds3D
effects={dustEffects}
enabled={visualEffects.dust}
isMobile={isMobile}
onEffectComplete={(id) => {
setDustEffects(prev => prev.filter(e => e.id !== id));
}}
/>
DustClouds3D Component
Renders billowing dust cloud effects for movement and combat impacts. Particles expand radially, rise slightly, then settle to the floor.