simple_game_utils/
lib.rs

1//! Simple Game Utilities
2//!
3//! # Usage
4//!
5//! ```no_run
6//!# const BYTES: [u8; 7] = [0,0,0,0,0,0,0];
7//!# const TILESET_FILE_CONTENTS: &str = "";
8//!# const TILEMAP_FILE_CONTENTS: &str = "";
9//!# fn main() {
10//!# use ici_files::image::IndexedImage;
11//!# use simple_game_utils::prelude::*;
12//!# let engine = AudioEngine::new().unwrap();
13//!# let duration = 1.0;
14//!# struct Graphics {
15//!# }
16//!# impl Graphics {
17//!#     fn draw_indexed_image(&self, pos: (isize,isize), img: &IndexedImage) {}
18//!# }
19//! let mut timing = Timing::new(240);
20//! let mut timer = Timer::new_with_delay(1.0, 2.0); //timer that triggers every second after waiting 2s initially
21//! let mut sound = engine.load_from_bytes(&BYTES, duration).unwrap();
22//! let ici_tileset: IciTileset = ron::from_str(TILESET_FILE_CONTENTS).unwrap();
23//! let tileset = ici_tileset.into_tileset().unwrap();
24//! let tilemap_file: TilemapFile = ron::from_str(TILEMAP_FILE_CONTENTS).unwrap();
25//! let tilemap: Tilemap<IndexedImage> = tilemap_file.into_tilemap(&tileset, (200,200)).unwrap();
26//!
27//! sound.play();
28//! loop {
29//!     sound.update(&timing);
30//!     if timer.update(&timing) {
31//!         break;
32//!     }
33//! }
34//! # let graphics = Graphics{};
35//! tilemap.draw(|img, pos| graphics.draw_indexed_image(pos, img));
36//!# }
37//! ```
38
39#[cfg(feature = "controller")]
40pub mod controller;
41pub mod error;
42#[cfg(feature = "prefs")]
43pub mod prefs;
44#[cfg(feature = "sound")]
45pub mod sound_effect;
46pub mod tiles;
47pub mod timing;
48
49pub mod prelude {
50    #[cfg(feature = "controller")]
51    pub use crate::controller::*;
52    pub use crate::error::*;
53    #[cfg(feature = "prefs")]
54    pub use crate::prefs::app_prefs::*;
55    #[cfg(feature = "prefs")]
56    pub use crate::prefs::*;
57    #[cfg(feature = "sound")]
58    pub use crate::sound_effect::*;
59    pub use crate::tiles::prelude::*;
60    pub use crate::timing::*;
61    #[cfg(feature = "sound")]
62    pub use audio_engine::AudioEngine;
63}