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
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#![cfg_attr(debug_assertions, allow(dead_code, unused_imports))]

mod engine;
mod resources;
mod graphics;
mod ecs;
mod config;

// --- Use ---

#[cfg(feature = "game")]
pub mod game {
    pub use crate::{
        engine::{
            Engine,
            PillGame,
            KeyboardKey,
            MouseButton,
        },
        ecs::{
            SceneHandle,
            MeshRenderingComponent,
            TransformComponent,
            InputComponent,
            CameraComponent,
            CameraAspectRatio,
            EntityHandle,
            AudioSourceComponent,
            AudioListenerComponent,
            TimeComponent,
            AudioManagerComponent,
            Component,
            ComponentStorage,
            GlobalComponent,
            GlobalComponentStorage,
            SoundType,
        },
        resources::{
            Resource,
            ResourceStorage,
            Texture, 
            TextureHandle,
            TextureType,
            Material,
            MaterialHandle,
            Mesh,
            MeshHandle,
            ResourceLoadType,
            Sound
        },

    };
    
    extern crate pill_core;
    pub use pill_core::{ 
        PillTypeMapKey, 
        Vector2f, 
        Vector3f, 
        Color, 
        Vector2i, 
        Vector3i,
        define_new_pill_slotmap_key,
    };
  
    extern crate anyhow;
    pub use anyhow::{ Context, Result, Error };
}

#[cfg(feature = "internal")]
pub mod internal {
    pub use crate::{
        engine::{
            Engine,
            PillGame,
        },
        config::*,
        graphics::{
            PillRenderer,
            RendererError,
            RenderQueueKey,
            RenderQueueItem,
            RenderQueueKeyFields,
            decompose_render_queue_key,

            RendererCameraHandle,
            RendererMaterialHandle,
            RendererMeshHandle,
            RendererPipelineHandle,
            RendererTextureHandle,
            RENDER_QUEUE_KEY_ORDER
        },
        ecs::{
            Scene,
            ComponentStorage,
            MeshRenderingComponent,
            TransformComponent,
            CameraComponent,
            EntityHandle,
            InputComponent,
            TimeComponent,
            CameraAspectRatio,
            AudioSourceComponent,
            AudioListenerComponent,
            AudioManagerComponent,
            get_renderer_resource_handle_from_camera_component,
        },
        resources::{
            Texture, 
            TextureHandle,
            TextureType,

            Material,
            MaterialHandle,

            Mesh,
            MeshHandle,
            MeshData,
            MeshVertex,    

            ResourceLoadType,
            ResourceManager,

            MaterialTexture,
            MaterialTextureMap,
            MaterialParameter,
            MaterialParameterMap,
            get_renderer_texture_handle_from_material_texture,
        },
    };
}