This repository has been archived on 2021-10-11. You can view files and clone it, but cannot push or open issues or pull requests.
ludum-dare-49/game/src/context.rs
2021-10-03 21:42:46 -04:00

37 lines
976 B
Rust

use std::{cell::RefCell, collections::HashMap, sync::mpsc::Sender};
use chrono::{DateTime, Duration, Utc};
use discord_sdk::activity::ActivityBuilder;
use raylib::audio::Sound;
use crate::{
progress::ProgressData,
utilities::{audio_player::AudioPlayer, non_ref_raylib::HackedRaylibHandle},
GameConfig,
};
#[derive(Debug)]
pub enum ControlFlag {
Quit,
BeginLevel(usize),
EndLevel,
// UpdateLevelStart(DateTime<Utc>),
// SaveProgress,
// MaybeUpdateHighScore(usize, Duration),
SoundTrigger(String),
}
#[derive(Debug)]
pub struct GameContext {
pub renderer: RefCell<HackedRaylibHandle>,
pub audio: AudioPlayer,
pub sounds: HashMap<String, Sound>,
pub config: GameConfig,
pub player_progress: ProgressData,
pub current_level: usize,
pub total_levels: usize,
pub level_start_time: DateTime<Utc>,
pub discord_rpc_send: Sender<Option<ActivityBuilder>>,
pub flag_send: Sender<Option<ControlFlag>>,
}