28 lines
476 B
Rust
28 lines
476 B
Rust
use std::collections::VecDeque;
|
|
|
|
use godot::prelude::*;
|
|
|
|
pub struct Popup {
|
|
pub title: String,
|
|
pub message: String,
|
|
pub ok: bool,
|
|
}
|
|
|
|
#[derive(GodotClass)]
|
|
#[class(base=Node, init, singleton)]
|
|
pub struct PopupQueue {
|
|
popups: VecDeque<Popup>,
|
|
|
|
base: Base<Node>,
|
|
}
|
|
|
|
impl PopupQueue {
|
|
pub fn queue(&mut self, popup: Popup) {
|
|
self.popups.push_back(popup);
|
|
}
|
|
|
|
pub fn poll(&mut self) -> Option<Popup> {
|
|
self.popups.pop_front()
|
|
}
|
|
}
|