Skip to main content

flatland_presentation/
lib.rs

1//! Resolve authoritative game states to gfx sprite `mode_id`s.
2
3mod catalog;
4mod directional;
5mod npc_states;
6mod player_config;
7mod player_states;
8mod resolve;
9mod validate;
10
11pub use catalog::{default_sprites_dir, load_sprite_catalog, SpriteCatalog, SpriteSheetModes};
12pub use directional::{
13    base_sprite_mode, cardinal_facing_label, eight_way_facing_label, expand_directional_draw_mode,
14    four_way_facing_label, sheet_has_mode, PLAYER_DIRECTIONAL_BASE_MODES,
15};
16pub use npc_states::{
17    resolve_placed_npc_presentation_key, resolve_wildlife_presentation_key,
18    PlacedNpcPresentationInput, WildlifeNpcPresentationInput, NPC_LEGACY_BEHAVIOR_ALIASES,
19    NPC_PRESENTATION_STATES,
20};
21pub use player_config::{
22    default_player_presentation_path, load_player_presentation, load_player_presentation_default,
23    PlayerPresentationConfig, PlayerPresentationDoc,
24};
25pub use player_states::{
26    resolve_player_presentation_key, PlayerPresentationInput, PLAYER_PRESENTATION_STATES,
27};
28pub use resolve::{
29    npc_presentation_key, placed_npc_presentation_input, player_presentation_input,
30    resolve_farm_growth_sprite_mode, resolve_npc_sprite_mode, resolve_player_sprite_mode,
31    presentation_sheet_mode_ids,
32    resolve_resource_sprite_mode,
33    resource_presentation_key, wildlife_npc_presentation_input, NpcPresentationInput,
34    PlayerSpritePresentationInput, RESOURCE_PRESENTATION_KEYS,
35    RESOURCE_PRESENTATION_KEY_COOLDOWN_LEGACY,
36};
37pub use validate::{
38    mode_exists_on_sheet, npc_sheet_alias, presentation_validation_mode_ids,
39    validate_sprite_mode_maps, validate_sprite_modes_for_presentation,
40};
41
42use std::collections::HashMap;
43
44/// Presentation key → sprite sheet mode id (from item/NPC YAML `sprite_modes`).
45pub type SpriteModeMap = HashMap<String, String>;