]> git.lizzy.rs Git - dragonblocks.git/blobdiff - engine/init.js
Map abstraction and World class
[dragonblocks.git] / engine / init.js
index 349d4670b39693a4c990cca98c2aceb0a4257c99..24d945ab2ad270a1976796a6a300da9dc0cd4881 100644 (file)
                loadingMods[modname] = false;
        };
 
-       dragonblocks.start = selectedMods => {
+       dragonblocks.loadMods = selectedMods = _ => {
+               dragonblocks.loadedMods = {};
+
+               for (let mod in selectedMods)
+                       if (selectedMods[mod])
+                               loadMod(mod);
+
+               for (let mod in dragonblocks.gamemods)
+                       loadMod(mod);
+       };
+
+       dragonblocks.start = worldProperties => {
                dragonblocks.log("Starting");
 
                for (let func of dragonblocks.onStartCallbacks)
                        func();
 
                setTimeout(_ => {
-                       dragonblocks.loadedMods = {};
-
-                       for (let mod in selectedMods)
-                               if (selectedMods[mods])
-                                       loadMod(mod);
-
-                       for (let mod in dragonblocks.gamemods)
-                               loadMod(mod);
-
-                       dragonblocks.map = new dragonblocks.Map();
-                       dragonblocks.map.load();
-
-                       dragonblocks.player = new dragonblocks.Player();
-
-                       dragonblocks.worldIsLoaded || dragonblocks.generateMap();
+                       dragonblocks.world = new dragonblocks.World(worldProperties);
+                       dragonblocks.player = dragonblocks.world.player;
 
                        for (let func of dragonblocks.onStartedCallbacks)
                                func();
 
                if (dragonblocks.loggedin)
                        setTimeout(_ => {
-                               dragonblocks.save();
+                               dragonblocks.player.despawn();
+                               dragonblocks.world.save();
                                location.reload();
                        });
                else