splash.style.color = "yellow";
splash.style.fontSize = "30px";
- let splashes = $.getJSON("splashes.json").responseJSON;
-
let status = center.appendChild(document.createElement("h1"));
status.style.fontSize = "50px";
status.style.display = "none";
elem.remove();
};
+ let worlds;
+
// Load World Button
{
let loadWorldGUI, worldlistDisplay, noWorldsNotice;
+ let worldProperties = new dragonblocks.World.Properties(true);
+
if (dragonblocks.loggedin) {
onReload.push(_ => {
if (loadWorldGUI) {
worldlistDisplay = loadWorldGUI.create("ul");
}
- noWorldsNotice.innerHTML = dragonblocks.worlds.length == 0 ? "No Worlds" : "";
+ noWorldsNotice.innerHTML = worlds.length == 0 ? "No Worlds" : "";
- for (let worldname in dragonblocks.worlds) {
- let world = dragonblocks.worlds[worldname];
+ for (let worldname in worlds) {
+ let world = worlds[worldname];
if (world.owned) {
let worldDisplay = worldlistDisplay.appendChild(document.createElement("li"));
event.srcElement.blur();
loadWorldGUI.close();
- dragonblocks.worldIsLoaded = true;
- dragonblocks.worldname = world.name;
- dragonblocks.world = $.getJSON("worlds/" + worldname + "/world.json").responseJSON;
-
- dragonblocks.mods = dragonblocks.world.mods;
-
- dragonblocks.start();
+ worldProperties.name = world.name;
+ dragonblocks.start(worldProperties);
});
}
}
let createWorldGUI = new dragonblocks.gui.Box();
let createButton;
- let worldProperties = {};
+ let worldProperties = new dragonblocks.World.Properties(false);
let headline = createWorldGUI.create("h1");
headline.innerHTML = "New World";
worldnameAlert.style.left = "50px";
worldnameInput.addEventListener("input", _ => {
- let worldname = worldnameInput.value;
+ worldProperties.name = worldnameInput.value;
- if(! dragonblocks.loggedin) {
+ if (! dragonblocks.loggedin) {
worldnameAlert.textContent = "Warning: You are not logged in and cannot save worlds.";
worldnameAlert.style.color = "#FF7D00";
createButton.disabled = false;
- } else if (worldname == "") {
+ } else if (worldProperties.name == "") {
worldnameAlert.textContent = "";
createButton.disabled = true;
- } else if (! dragonblocks.checkWorldnameSpelling(worldname)) {
+ } else if (! worldProperties.checkSpelling()) {
worldnameAlert.textContent = "The world name contains forbidden characters";
worldnameAlert.style.color = "#FF001F";
createButton.disabled = true;
- } else if (dragonblocks.worlds[worldname]) {
- if (dragonblocks.worlds[worldname].owned) {
+ } else if (worlds[worldProperties.name]) {
+ if (worlds[worldProperties.name].owned) {
worldnameAlert.textContent = "Warning: This will overwrite an existing world";
worldnameAlert.style.color = "#FF7D00";
createButton.disabled = false;
worldnameAlert.textContent = "";
createButton.disabled = false;
}
-
- worldProperties.worldname = worldname;
});
// Mods
- worldProperties.mods = {};
-
createWorldGUI.create("h2").innerHTML = " Mods";
let modlistDisplay;
};
// Gamemode
- worldProperties.gamemode = "survival";
-
createWorldGUI.create("h2").innerHTML = " Gamemode";
for (let gamemode of ["survival", "creative"]){
let selectMapgen = createWorldGUI.create("select");
selectMapgen.style.position = "relative";
selectMapgen.style.left = "40px";
+ selectMapgen.value = worldProperties.mapgen;
selectMapgen.addEventListener("input", _ => {
worldProperties.mapgen = selectMapgen.value;
for (let mapgen in dragonblocks.mapgen.list)
selectMapgen.appendChild(document.createElement("option")).innerHTML = mapgen;
- worldProperties.mapgen = selectMapgen.value;
-
createWorldGUI.create("br");
createWorldGUI.create("br");
event.srcElement.blur();
createWorldGUI.close();
- dragonblocks.worldIsLoaded = false;
- dragonblocks.worldname = worldProperties.worldname;
- dragonblocks.world = dragonblocks.getEmptyWorld();
-
- dragonblocks.entities["dragonblocks:player"].meta.creative = (worldProperties.gamemode == "creative");
-
- dragonblocks.mapgen.selected = worldProperties.mapgen;
-
- dragonblocks.start(worldProperties.mods);
+ dragonblocks.start(worldProperties);
});
createWorldGUI.create("br");
text: "Quit",
action: _ => {
if (dragonblocks.isChromeApp)
- window.close();
+ close();
else
history.back();
},
dragonblocks.enterMainMenu = _ => {
dragonblocks.loadModList();
- dragonblocks.loadWorldList();
+ worlds = dragonblocks.backendCall("getWorlds");
content.style.display = "inherit";
status.style.display = "none";
content.style.width = logo.offsetWidth + "px";
mainmenu.style.visibility = "visible";
+ let splashes = $.getJSON("splashes.json").responseJSON;
+
splash.innerHTML = splashes[Math.floor(Math.random() * splashes.length)];
let fontSize = Math.min(parseInt(10000 / splash.clientWidth), 30);
splash.style.fontSize = fontSize + "px";