- dragonblocks.save();
- location.reload();
- });
- else
- location.reload();
-}
-dragonblocks.onQuitFunctions = [];
-dragonblocks.registerOnQuit = function(func){
- dragonblocks.onQuitFunctions.push(func);
-}
-dragonblocks.loadWorld = function(world){
- dragonblocks.worldIsLoaded = true;
- dragonblocks.worldname = world;
- dragonblocks.world = $.getJSON("worlds/" + world + "/world.json").responseJSON;
- dragonblocks.mods = dragonblocks.world.mods;
- dragonblocks.start();
-}
-dragonblocks.createWorld = function(properties){
- dragonblocks.worldIsLoaded = false;
- dragonblocks.worldname = properties.worldname;
- dragonblocks.world = dragonblocks.getEmptyWorld();
- dragonblocks.entities["dragonblocks:player"].meta.creative = (properties.gamemode == "creative");
- for(mod in properties.mods)
- properties.mods[mod] && dragonblocks.mods.push(mod);
- dragonblocks.mapgen.selected = properties.mapgen;
- dragonblocks.start();
-}
-dragonblocks.loadedMods = [];
-dragonblocks.loadingMods = {};
-dragonblocks.loadMod = function(modname){
- if(! modname)
- return;
- if(dragonblocks.loadingMods[modname])
- dragonblocks.error("Circular Mod Dependencies: " + modname);
- if(dragonblocks.loadedMods.indexOf(modname) != -1)
- return;
- if(dragonblocks.gamemods.indexOf(modname) != -1)
- var modpath = "game/" + modname;
- else if(dragonblocks.availableMods.indexOf(modname) != -1)
- var modpath = "mods/" + modname;
- else
- dragonblocks.error("Unsolved Mod Dependencies: " + modname);
- let dependencyRequest = $.get(modpath + "/dependencies.txt");
- if(dependencyRequest.status == 200){
- let dependencies = dependencyRequest.responseText.split("\n");
- for(let dependency of dependencies)
- dragonblocks.loadMod(dependency);
- }
- $.getScript(modpath + "/init.js");
- dragonblocks.loadedMods.push(modname);
- dragonblocks.loadingMods[modname] = false;
-}
-dragonblocks.modules = ["ressources", "key_handler", "gui", "mapgen", "world", "item", "node", "tool", "group", "builtin", "map_node", "map", "itemstack", "inventory", "inventory_group", "hudbar", "inventory_container", "creative_inventory", "recipe", "craftfield", "menu", "skin", "entity", "map_interaction", "spawned_entity", "falling_node", "timer", "player", "pixel_manipulator", "chat", "chatcommands", "mainmenu"];
-dragonblocks.moduleCount = dragonblocks.modules.length;
-dragonblocks.loadModule = function(){
- if(dragonblocks.modules[0]){
- document.getElementById("elidragon.status").innerHTML = dragonblocks.modules[0] + ".js";
- $.getScript({
- url: "engine/" + dragonblocks.modules.shift() + ".js",
- async: true,
- success: _ => {
- document.getElementById("elidragon.loadbar").style.width = (dragonblocks.moduleCount - dragonblocks.modules.length) / dragonblocks.moduleCount * 100 + "%";
- dragonblocks.loadModule();
- },