Newer
Older
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
use bevy::asset::LoadState;
use bevy::prelude::*;
use crate::assets::{AssetTypeLoader, SpriteSheetConfig};
use crate::system::AppState;
pub fn start_preload_resources(
mut _commands: Commands,
mut next_state: ResMut<NextState<AppState>>,
) {
// TODO: Add preload commands here
next_state.set(AppState::Setup);
}
pub fn start_load_resources(mut loader: AssetTypeLoader) {
loader.load_images(&[
("splash.png", "splash"),
("cresthollow.png", "menu_bg"),
("interface/basic_frame.png", "basic_frame"),
("interface/banner.png", "banner"),
("interface/button_pressed.png", "button_down"),
("interface/button_raised.png", "button_up"),
("interface/button_hover.png", "button_over"),
("interface/vertical_bar.png", "resource_bar"),
("interface/vertical_bar_bg.png", "resource_bar_bg"),
("interface/vertical_bar_fg.png", "resource_bar_fg"),
("interface/health_bar.png", "bar_red"),
("interface/mana_bar.png", "bar_blue"),
("interface/stamina_bar.png", "bar_yellow"),
("interface/energy_bar.png", "bar_green"),
]);
loader.load_audio(&[
("splash_sting.ogg", "splash_sting"),
("music/menu.ogg", "menu_track"),
("effects/running_001.ogg", "running_001"),
("effects/fire_crackle_001.ogg", "fire_crackle_001"),
("effects/cave_ambience.ogg", "cave_ambience"),
("effects/ui_confirm.ogg", "ui_confirm"),
("effects/ui_ping.ogg", "ui_ping"),
]);
loader.load_font(&[
("fonts/royal.ttf", "royal"),
("fonts/equipe.ttf", "equipe"),
("fonts/cursed.ttf", "cursed"),
("fonts/cursed_bold.ttf", "cursed_bold"),
]);
loader.load_spritesheet(
&SpriteSheetConfig::squares(16, 32, 64),
&[
("sheets/items.png", "items"),
("sheets/fx.png", "fx"),
("sheets/or_interface.png", "interface"),
("sheets/projectiles.png", "projectiles"),
],
);
loader.load_spritesheet(
&SpriteSheetConfig::squares(32, 16, 32),
&[
("sheets/creatures/town_guard_human.png", "town_guard_human"),
("sheets/creatures/town_guard_orc.png", "town_guard_orc"),
("sheets/creatures/town_guard_dwarf.png", "town_guard_dwarf"),
("sheets/creatures/town_guard_elf.png", "town_guard_elf"),
],
);
loader.load_spritesheet(
&SpriteSheetConfig::squares(32, 32, 32),
&[
("sheets/creatures/human_base.png", "human_base"),
("sheets/creatures/goblin_base.png", "goblin_base"),
("sheets/creatures/skeleton.png", "skeleton"),
("sheets/creatures/flame_acolyte.png", "flame_acolyte"),
("sheets/creatures/divine_warrior.png", "divine_warrior"),
],
);
loader.load_spritesheet(
&SpriteSheetConfig::squares(16, 64, 64),
&[
("sheets/world_dawn.png", "world"),
("sheets/characters.png", "characters"),
],
);
loader.load_animation(&[
("animations/humanoid.anim.json", "humanoid"),
("animations/skeleton.anim.json", "skeleton"),
("animations/flame_acolyte.anim.json", "flame_acolyte"),
("animations/guards.anim.json", "town_guards"),
]);
loader.load_ldtk(&[
("ldtk/dawnish.ldtk", "tile_data"),
("ldtk/cresthollow_world.ldtk", "cresthollow_world"),
]);
}
pub fn check_load_resources(
mut commands: Commands,
loader: AssetTypeLoader,
mut next_state: ResMut<NextState<AppState>>,
) {
let load_states = loader.get_all_load_state();
if load_states.iter().all(|state| *state == LoadState::Loaded) {
info!("Assets loaded successfully");
next_state.set(AppState::Splash);
}
}