Replaced Degrees and Radians with a single Angle type
[kaka/rust-sdl-test.git] / src / sprites.rs
CommitLineData
cdf8f998
TW
1use std::collections::HashMap;
2
3use sdl2::image::LoadTexture;
4use sdl2::render::Texture;
5use sdl2::render::TextureCreator;
6use sdl2::video::WindowContext;
7
fcbc5786
TW
8pub struct SpriteManager {
9 texture_creator: TextureCreator<WindowContext>, // can't make the lifetimes work when this is owned instead of borrowed
1e322944 10 textures: HashMap<String, Texture>,
cdf8f998
TW
11}
12
fcbc5786
TW
13impl SpriteManager {
14 pub fn new(texture_creator: TextureCreator<WindowContext>) -> SpriteManager {
cdf8f998
TW
15 SpriteManager {
16 texture_creator,
17 textures: HashMap::new(),
18 }
19 }
20
1e322944 21 pub fn load(&mut self, name: &str, file: &str) {
6ba7aef1
TW
22 self.textures.insert(
23 name.to_string(),
24 self.texture_creator.load_texture(file).unwrap(),
25 );
cdf8f998
TW
26 }
27
28 pub fn get(&self, name: &str) -> &Texture {
6ba7aef1
TW
29 self.textures
30 .get(name)
31 .unwrap_or_else(|| panic!("The sprite '{}' was not found", name))
cdf8f998
TW
32 }
33}