oxygengine_composite_renderer/
lib.rs1extern crate oxygengine_animation as anims;
2extern crate oxygengine_core as core;
3extern crate oxygengine_utils as utils;
4
5pub mod component;
6pub mod composite_renderer;
7pub mod font_asset_protocol;
8pub mod font_face_asset_protocol;
9pub mod jpg_image_asset_protocol;
10pub mod map_asset_protocol;
11pub mod math;
12pub mod mesh_animation_asset_protocol;
13pub mod mesh_asset_protocol;
14pub mod png_image_asset_protocol;
15pub mod resource;
16pub mod sprite_sheet_asset_protocol;
17pub mod svg_image_asset_protocol;
18pub mod system;
19pub mod tileset_asset_protocol;
20
21pub mod prelude {
22 pub use crate::{
23 component::*,
24 composite_renderer::*,
25 font_asset_protocol::*,
26 font_face_asset_protocol::*,
27 jpg_image_asset_protocol::*,
28 map_asset_protocol::*,
29 math::*,
30 mesh_animation_asset_protocol::*,
31 mesh_asset_protocol::*,
32 png_image_asset_protocol::*,
33 resource::*,
34 sprite_sheet_asset_protocol::*,
35 svg_image_asset_protocol::*,
36 system::{
37 camera_cache::*, map::*, mesh::*, mesh_animation::*, renderer::*, sprite_animation::*,
38 sprite_sheet::*, surface_cache::*, tilemap::*, tilemap_animation::*, transform::*, *,
39 },
40 tileset_asset_protocol::*,
41 };
42}
43
44use crate::{
45 component::*,
46 composite_renderer::CompositeRenderer,
47 resource::*,
48 system::{
49 camera_cache::*, map::*, mesh::*, mesh_animation::*, renderer::*, sprite_animation::*,
50 sprite_sheet::*, surface_cache::*, tilemap::*, tilemap_animation::*, transform::*,
51 },
52};
53use core::{
54 app::AppBuilder,
55 assets::database::AssetsDatabase,
56 ecs::pipeline::{PipelineBuilder, PipelineBuilderError},
57 ignite_proxy,
58 prefab::PrefabManager,
59};
60
61ignite_proxy! {
62 struct Grid2d<T> {}
63}
64
65pub fn bundle_installer<PB, CR>(
66 builder: &mut AppBuilder<PB>,
67 data: CR,
68) -> Result<(), PipelineBuilderError>
69where
70 PB: PipelineBuilder,
71 CR: CompositeRenderer + 'static,
72{
73 builder.install_resource(data);
74 builder.install_resource(CompositeTransformCache::default());
75 builder.install_resource(CompositeCameraCache::default());
76 builder.install_resource(CompositeMeshAnimationSystemCache::default());
77 builder.install_resource(CompositeSpriteSheetSystemCache::default());
78 builder.install_resource(CompositeTilemapSystemCache::default());
79 builder.install_resource(CompositeMeshSystemCache::default());
80 builder.install_resource(CompositeMapSystemCache::default());
81 builder.install_resource(CompositeSurfaceCacheSystemCache::default());
82
83 builder.install_system::<CompositeTransformSystemResources>(
84 "transform",
85 composite_transform_system,
86 &[],
87 )?;
88 builder.install_system::<CompositeSpriteAnimationSystemResources>(
89 "sprite-animation",
90 composite_sprite_animation_system,
91 &[],
92 )?;
93 builder.install_system::<CompositeTilemapAnimationSystemResources>(
94 "tilemap-animation",
95 composite_tilemap_animation_system,
96 &[],
97 )?;
98 builder.install_system::<CompositeMeshAnimationSystemResources>(
99 "mesh-animation",
100 composite_mesh_animation_system,
101 &[],
102 )?;
103 builder.install_system::<CompositeSpriteSheetSystemResources>(
104 "sprite-sheet",
105 composite_sprite_sheet_system,
106 &["sprite-animation"],
107 )?;
108 builder.install_system::<CompositeTilemapSystemResources>(
109 "tilemap",
110 composite_tilemap_system,
111 &["tilemap-animation"],
112 )?;
113 builder.install_system::<CompositeMeshSystemResources>(
114 "mesh",
115 composite_mesh_system,
116 &["mesh-animation"],
117 )?;
118 builder.install_system::<CompositeMapSystemResources>("map", composite_map_system, &[])?;
119 builder.install_system::<CompositeCameraCacheSystemResources<CR>>(
120 "camera-cache",
121 composite_camera_cache_system::<CR>,
122 &[],
123 )?;
124 builder.install_system::<CompositeSurfaceCacheSystemResources<CR>>(
125 "surface-cache",
126 composite_surface_cache_system::<CR>,
127 &[],
128 )?;
129 builder.install_system::<CompositeRendererSystemResources<CR>>(
130 "renderer",
131 composite_renderer_system::<CR>,
132 &[],
133 )?;
134
135 Ok(())
136}
137
138pub fn protocols_installer(database: &mut AssetsDatabase) {
139 database.register(png_image_asset_protocol::PngImageAssetProtocol);
140 database.register(jpg_image_asset_protocol::JpgImageAssetProtocol);
141 database.register(svg_image_asset_protocol::SvgImageAssetProtocol);
142 database.register(sprite_sheet_asset_protocol::SpriteSheetAssetProtocol);
143 database.register(tileset_asset_protocol::TilesetAssetProtocol);
144 database.register(map_asset_protocol::MapAssetProtocol);
145 database.register(font_asset_protocol::FontAssetProtocol);
146 database.register(font_face_asset_protocol::FontFaceAssetProtocol);
147 database.register(mesh_asset_protocol::MeshAssetProtocol);
148 database.register(mesh_animation_asset_protocol::MeshAnimationAssetProtocol);
149}
150
151pub fn prefabs_installer(prefabs: &mut PrefabManager) {
152 prefabs.register_component_factory::<CompositeVisibility>("CompositeVisibility");
153 prefabs.register_component_factory::<CompositeSurfaceCache>("CompositeSurfaceCache");
154 prefabs.register_component_factory::<CompositeRenderable>("CompositeRenderable");
155 prefabs.register_component_factory::<CompositeRenderableStroke>("CompositeRenderableStroke");
156 prefabs.register_component_factory::<CompositeTransform>("CompositeTransform");
157 prefabs.register_component_factory::<CompositeRenderLayer>("CompositeRenderLayer");
158 prefabs.register_component_factory::<CompositeRenderDepth>("CompositeRenderDepth");
159 prefabs.register_component_factory::<CompositeRenderAlpha>("CompositeRenderAlpha");
160 prefabs.register_component_factory::<CompositeCameraAlignment>("CompositeCameraAlignment");
161 prefabs.register_component_factory::<CompositeEffect>("CompositeEffect");
162 prefabs.register_component_factory::<CompositeCamera>("CompositeCamera");
163 prefabs.register_component_factory::<CompositeSprite>("CompositeSprite");
164 prefabs.register_component_factory::<CompositeSpriteAnimation>("CompositeSpriteAnimation");
165 prefabs.register_component_factory::<CompositeTilemap>("CompositeTilemap");
166 prefabs.register_component_factory::<CompositeTilemapAnimation>("CompositeTilemapAnimation");
167 prefabs.register_component_factory::<CompositeMapChunk>("CompositeMapChunk");
168 prefabs.register_component_factory::<CompositeMesh>("CompositeMesh");
169 prefabs.register_component_factory::<CompositeMeshAnimation>("CompositeMeshAnimation");
170}