Skip to main content

game_toolkit/
lib.rs

1//! game-toolkit: a 2D-first game-jam toolkit.
2//!
3//! This is the umbrella entry-point crate. Depend on `game-toolkit` and write
4//! `use game_toolkit::prelude::*;` to pull in the runtime types from the `game-toolkit-*`
5//! crates behind one dependency. Optional features: `ui`, `aseprite`, `ecs`, `synth`,
6//! `vector`.
7
8#![forbid(unsafe_code)]
9
10#[cfg(feature = "aseprite")]
11mod aseprite_ext;
12
13/// Everything you need to write a game: `use game_toolkit::prelude::*;`.
14pub mod prelude {
15    pub use anyhow;
16    pub use anyhow::Result;
17    pub use winit;
18
19    pub use game_toolkit_assets::Assets;
20    pub use game_toolkit_audio::{Audio, SoundId};
21    pub use game_toolkit_core::{AppConfig, Context, Game, GameEvent, Rng, Time, asset_root, run};
22    pub use game_toolkit_gfx::{
23        BlendMode, Camera, Camera2D, Camera3D, CircleInstance, Frame, Graphics, Mat4, MeshId,
24        MeshInstance, MeshVertex, Painter, SpriteInstance, TextureId, Tilemap, transform, wgpu,
25    };
26    pub use game_toolkit_input::{Axis, Button, Gamepad, GamepadId, Input, Key, MouseButton};
27
28    #[cfg(feature = "ui")]
29    pub use game_toolkit_ui::{self, Ui, egui};
30
31    #[cfg(feature = "aseprite")]
32    pub use crate::aseprite_ext::LoadAseprite;
33    #[cfg(feature = "aseprite")]
34    pub use game_toolkit_aseprite::{
35        self, Animation, AnimationPlayer, Direction, FrameRect, SpriteSheet,
36    };
37
38    #[cfg(feature = "synth")]
39    pub use game_toolkit_audio::{Synth, synthie};
40
41    #[cfg(feature = "ecs")]
42    pub use game_toolkit_ecs::{self, ChannelQueue, Vec2};
43
44    #[cfg(feature = "vector")]
45    pub use game_toolkit_gfx::vello;
46}