Sobre el proyecto

bevy_asset_loader es un plugin para el motor de juegos Bevy que simplifica y organiza la carga de recursos del juego. Introduce un trait derivable `AssetCollection` que permite a los desarrolladores agrupar recursos relacionados en structs, los cuales quedan disponibles como recursos ECS de Bevy una vez cargados por completo. La característica principal del plugin es el sistema de estados de carga. Los desarrolladores pueden configurar un estado de Bevy dedicado a la carga de recursos, especificar qué colecciones de recursos cargar y definir el siguiente estado al que transicionar una vez completada la carga. El estado de carga garantiza que todos los handles de recursos estén completamente cargados antes de que comience el siguiente estado. Los tipos de campos de recursos admitidos incluyen: - Campos `Handle<T>` individuales cargados desde una ruta de archivo (audio, imágenes, etc.) - Diseños de atlas de texturas con tamaño de tile, columnas, filas y padding configurables - Imágenes con configuraciones de sampler personalizadas (modo de filtrado, modo de ajuste) - Texturas de array con recuentos de capas configurables - Materiales estándar (con la feature 3d habilitada) - Carpetas cargadas como `Vec<UntypedHandle>` o vectores tipados - Listas de rutas para la recopilación de recursos compatible con la web - Colecciones cargadas como HashMaps usando el trait MapKey Se admiten dos modos de configuración de recursos: Los recursos en tiempo de compilación usan atributos de macro derivada directamente en el código. Las rutas y opciones están codificadas de forma fija, lo que requiere recompilación para cambios. Los recursos dinámicos usan el atributo `key` en lugar de `path`, lo que permite almacenar configuraciones en archivos `.assets.ron`. Esto separa los datos de recursos del código, reduce la frecuencia de recompilación y facilita a los no programadores la gestión de recursos. La feature `standard_dynamic_assets` habilita la carga de archivos RON para recursos dinámicos. Las capacidades adicionales incluyen: - Integración del seguimiento de progreso con el crate iyes_progress para soporte de barras de carga - Configuración de estado de fallo para manejar recursos faltantes o no cargados de forma controlada - `finally_init_resource` para inicializar recursos FromWorld después de que se carguen las colecciones de recursos - Inicialización directa sin un estado de carga mediante `init_collection` - Descarga de recursos eliminando los recursos AssetCollection cuando ya no se necesitan El crate tiene doble licencia bajo Apache-2.0 y MIT, y mantiene compatibilidad con múltiples versiones de Bevy, con una rama dedicada que sigue la rama principal de desarrollo de Bevy.