1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
extern crate oxygengine_core as core; pub mod audio_asset_protocol; pub mod component; pub mod resource; pub mod system; pub mod prelude { pub use crate::{audio_asset_protocol::*, component::*, resource::*, system::*}; } use crate::{ component::{AudioSource, AudioSourcePrefabProxy}, resource::Audio, system::{audio_system, AudioSystemResources}, }; use core::{ app::AppBuilder, assets::database::AssetsDatabase, ecs::pipeline::{PipelineBuilder, PipelineBuilderError}, prefab::PrefabManager, }; pub fn bundle_installer<PB, A>( builder: &mut AppBuilder<PB>, data: A, ) -> Result<(), PipelineBuilderError> where PB: PipelineBuilder, A: Audio + 'static, { builder.install_resource(data); builder.install_system::<AudioSystemResources<A>>("audio", audio_system::<A>, &[])?; Ok(()) } pub fn protocols_installer(database: &mut AssetsDatabase) { database.register(audio_asset_protocol::AudioAssetProtocol); } pub fn prefabs_installer(prefabs: &mut PrefabManager) { prefabs.register_component_factory_proxy::<AudioSource, AudioSourcePrefabProxy>("AudioSource"); }