EventMapper/assets/scripts/KaplayMap/events.js

44 lines
892 B
JavaScript
Raw Normal View History

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
}