From 288cf94fec8070db30ed6700c109150cc8fb450b Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Sun, 25 Apr 2021 00:17:08 +0200
Subject: [PATCH] Implement first part of map loading code

---
 src/backends/base.js | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/backends/base.js b/src/backends/base.js
index dab9c3d..78d36bc 100644
--- a/src/backends/base.js
+++ b/src/backends/base.js
@@ -23,6 +23,33 @@ class BaseBackend {
   constructor(userId) {
     this.userId = userId;
   }
+
+  setMapData(mapData) {
+    this.game.loadMap(mapData);
+  }
+
+  setMapDataFromUrl(url) {
+    if (url.substr(0, 6) === 'mxc://') {
+      url = this.resolveMxcUrl(url);
+    }
+
+    fetch(url)
+        .then((response) => response.json())
+        .then(this.setMapData);
+  }
+
+  getMap(mapName) {
+    if (mapName.indexOf('://') > -1) {
+      this.setMapDataFromUrl(mapName);
+    } else {
+      const state = this.getState(EventTypes.map, mapName);
+      if (state.url !== undefined) {
+        this.setMapDataFromUrl(state.url);
+      } else {
+        this.setMapData(state);
+      }
+    }
+  }
 }
 
 export default BaseBackend;
-- 
GitLab