2024-06-02 05:39:23 +00:00
|
|
|
export class EventManager {
|
|
|
|
map;
|
|
|
|
ui;
|
|
|
|
gameobj;
|
|
|
|
floormanager;
|
|
|
|
|
|
|
|
events = new Map([]);
|
2024-06-04 22:54:40 +00:00
|
|
|
#currentEvent = "";
|
2024-06-02 05:39:23 +00:00
|
|
|
|
|
|
|
constructor(map, ui, gameobj) {
|
|
|
|
this.map = map;
|
|
|
|
this.ui = ui;
|
|
|
|
this.ui.eventmanager = this;
|
|
|
|
this.gameobj = gameobj;
|
|
|
|
}
|
|
|
|
|
2024-06-04 22:54:40 +00:00
|
|
|
async getEvents(lang, floor) {
|
|
|
|
let allEventsReqSend = fetch(`/data/${lang}/events/${floor}`);
|
2024-06-02 05:39:23 +00:00
|
|
|
|
|
|
|
this.ui.setLoading(true);
|
|
|
|
|
2024-06-04 22:54:40 +00:00
|
|
|
let allEventsReq = await allEventsReqSend;
|
|
|
|
let allEvents;
|
|
|
|
if (allEventsReq.ok) allEvents = await allEventsReq.json();
|
2024-06-02 05:39:23 +00:00
|
|
|
|
|
|
|
this.events.clear();
|
|
|
|
|
2024-06-04 22:54:40 +00:00
|
|
|
allEvents.forEach((event) => this.events.set(event.id, event));
|
2024-06-02 05:39:23 +00:00
|
|
|
|
|
|
|
this.ui.setLoading(false);
|
2024-06-04 22:54:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
setCurrentEvent(id) {
|
|
|
|
if (id == null) this.#currentEvent = id;
|
|
|
|
else {
|
|
|
|
const event = this.events.get(id);
|
|
|
|
if (event != null) this.#currentEvent = event;
|
|
|
|
}
|
|
|
|
}
|
2024-06-02 05:39:23 +00:00
|
|
|
|
2024-06-04 22:54:40 +00:00
|
|
|
get currentEvent() {
|
|
|
|
return this.#currentEvent;
|
2024-06-02 05:39:23 +00:00
|
|
|
}
|
2024-06-04 22:54:40 +00:00
|
|
|
}
|