1use std::ops::{Deref, DerefMut};
2
3use crate::{gotham_state::GothamState, resource_table::ResourceTable};
4
5#[derive(Default, Debug)]
10pub struct GlobalResourceManager {
11 pub resource_table: ResourceTable,
12 pub gotham_state: GothamState,
13}
14
15impl GlobalResourceManager {
18 pub fn new() -> Self {
20 Self {
21 resource_table: ResourceTable::default(),
22 gotham_state: GothamState::default(),
23 }
24 }
25
26 pub fn clear(&mut self) {
29 std::mem::take(&mut self.gotham_state);
30 std::mem::take(&mut self.resource_table);
31 }
32}
33impl Deref for GlobalResourceManager {
34 type Target = GothamState;
35
36 fn deref(&self) -> &Self::Target {
37 &self.gotham_state
38 }
39}
40
41impl DerefMut for GlobalResourceManager {
42 fn deref_mut(&mut self) -> &mut Self::Target {
43 &mut self.gotham_state
44 }
45}