From: Elias Fleckenstein Date: Sun, 26 Apr 2020 09:49:37 +0000 (+0200) Subject: Initial Commit X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=5c327bbd570c28362fa75a7c3676d9b244a45d6a;p=skyblocks.git Initial Commit --- 5c327bbd570c28362fa75a7c3676d9b244a45d6a diff --git a/README b/README new file mode 100644 index 0000000..aff3949 --- /dev/null +++ b/README @@ -0,0 +1 @@ +Skyblocks Mod for dragonblocks (https://github.com/EliasFleckenstein03/dragonblocksJS) diff --git a/dependencies.txt b/dependencies.txt new file mode 100644 index 0000000..f068578 --- /dev/null +++ b/dependencies.txt @@ -0,0 +1,7 @@ +furnace +plants +tools +chest +core +dirt +chat diff --git a/gui.js b/gui.js new file mode 100644 index 0000000..e260c11 --- /dev/null +++ b/gui.js @@ -0,0 +1,24 @@ +{ + let gui = skyblocks.gui = dragonblocks.gui.createBox({ keylock: true }); + let headline = gui.create("h1"); + headline.align = "center"; + headline.innerHTML = "Skyblocks"; + let ul = gui.create("ul"); + for(let quest of skyblocks.quests){ + let li = ul.appendChild(document.createElement("li")); + li.style.fontSize = "20px"; + li.innerHTML = quest.desc; + li.style.postion = "relative"; + let questCount = ul.appendChild(document.createElement("var")); + questCount.style.position = "absolute"; + questCount.style.right = "20px"; + questCount. + let checkbox = li.appendChild(document.createElement("input")); + checkbox.type = "checkbox"; + checkbox.style.position = "absolute"; + checkbox.style.right = "5px"; + checkbox.addEventListener("input", _ => { gui.getDisplay().dispatchEvent(new Event("update")) }); + gui.getDisplay().addEventListener("update", _ => { checkbox.checked = (dragonblocks.player.meta.skyblocksQuests[quest.name] >= quest.count)}) + } + dragonblocks.menu.addButton("Skyblocks", _ => { gui.open() }); +} diff --git a/init.js b/init.js new file mode 100644 index 0000000..1c5af3e --- /dev/null +++ b/init.js @@ -0,0 +1,3 @@ +skyblocks = {}; +for(let script of ["quests.js", "mapgen.js", "recipes.js", "misc.js", "gui.js"]) + $.getScript(dragonblocks.getModpath("skyblocks") + "/" + script); diff --git a/mapgen.js b/mapgen.js new file mode 100644 index 0000000..2cae463 --- /dev/null +++ b/mapgen.js @@ -0,0 +1,23 @@ +dragonblocks.registerNode({ + name: "skyblocks:skyblock", + groups: ["glass"], + desc: "Skyblock", + texture: "skyblocks_skyblock.png", + hardness: 4, + stable: true, + ondig: _ => { + return false; + }, + onclick: _ => { + skyblocks.gui.open(); + }, +}); +dragonblocks.mapgen.list["skyblocks"] = function(){ + dragonblocks.getPixelManipulator([ + ["dirt:grass", "dirt:grass", "§skyblocks:skyblock", "dirt:grass", "dirt:grass"], + ["", "dirt:dirt", "dirt:dirt", "dirt:dirt", ""], + ["", "", "dirt:dirt", "", ""], + + ]).apply(parseInt(dragonblocks.map.width / 2), parseInt(dragonblocks.map.height / 2)); +} +dragonblocks.mapgen.selected = "skyblocks"; diff --git a/misc.js b/misc.js new file mode 100644 index 0000000..22bb3d1 --- /dev/null +++ b/misc.js @@ -0,0 +1,8 @@ +dragonblocks.tools["dragonblocks:hand"].groups.push({ + name: "choppy", + damage: 0, +}); +dragonblocks.registerOnSetNode((x, y) => { + dragonblocks.finishTimer("growTimer", dragonblocks.getNode(x, y).meta) +}); + diff --git a/quests.js b/quests.js new file mode 100644 index 0000000..50ab4ef --- /dev/null +++ b/quests.js @@ -0,0 +1,36 @@ +skyblocks.quests = $.getJSON(dragonblocks.getModpath("skyblocks") + "/quests.json").responseJSON; +dragonblocks.registerOnStarted(_ => { + let meta = dragonblocks.player.meta; + if(! meta.skyblocksQuests) + meta.skyblocksQuests = {}; + for(let quest of skyblocks.quests) + meta.skyblocksQuests[quest.name] = meta.skyblocksQuests[quest.name] || 0; + skyblocks.update(); +}); +skyblocks.update = function(){ + let meta = dragonblocks.player.meta; + for(let quest of skyblocks.quests) + if(meta.skyblocksQuests[quest.name] == quest.count){ + dragonblocks.player.give(quest.reward); + meta.skyblocksQuests[quest.name]++; + dragonblocks.playSound("skyblocks_finish_quest.ogg"); + chat.send(".me completed the quest '" + quest.name + "' [skyblocks]"); + } + skyblocks.gui.getDisplay().dispatchEvent(new Event("update")); +} +skyblocks.event = function(action, param){ + for(let quest of skyblocks.quests){ + if(quest.action == action && dragonblocks.itemMatch(quest.param, param)) + dragonblocks.player.meta.skyblocksQuests[quest.name]++; + } + skyblocks.update(); +} +dragonblocks.registerOnPlaceNode(node => { + skyblocks.event("place", node); +}); +dragonblocks.registerOnDigNode((x, y) => { + skyblocks.event("dig", dragonblocks.getNode(x, y).toNode()); +}); +dragonblocks.registerOnUseItem(item => { + skyblocks.event("use", item); +}); diff --git a/quests.json b/quests.json new file mode 100644 index 0000000..2a24d3f --- /dev/null +++ b/quests.json @@ -0,0 +1,58 @@ +[ + { + "name": "dig_dirt", + "desc": "Dig 5 dirt", + "action": "dig", + "param": "dirt", + "reward": "tools:stick", + "count": 5 + }, + { + "name": "place_dirt", + "desc": "Place 5 dirt", + "action": "place", + "param": "dirt", + "reward": "plants:apple_leaves 6", + "count": 5 + }, + { + "name": "place_sapling", + "desc": "Plant a tree", + "action": "place", + "param": "plants:apple_sapling", + "reward": "plants:apple_tree", + "count": 1 + }, + { + "name": "dig_tree", + "desc": "Dig 8 Tree", + "action": "dig", + "param": "plants:apple_tree", + "reward": "core:cobble 8", + "count": 8 + }, + { + "name": "place_furnace", + "desc": "Place a furnace", + "action": "place", + "param": "furnace:furnace", + "reward": "tools:steel_axe", + "count": 1 + }, + { + "name": "place_chest", + "desc": "Place a chest", + "action": "place", + "param": "chest:chest", + "reward": "plants:papyrus 5", + "count": 1 + }, + { + "name": "place_door", + "desc": "Place a door", + "action": "use", + "param": "doors:door_wood", + "reward": "tools:steel_pickaxe", + "count": 1 + } +] diff --git a/recipes.js b/recipes.js new file mode 100644 index 0000000..a31ec65 --- /dev/null +++ b/recipes.js @@ -0,0 +1,22 @@ +dragonblocks.registerRecipe({ + result: "plants:apple_sapling", + recipe:[ + ["plants:apple_leaves", "plants:apple_leaves", "plants:apple_leaves"], + ["plants:apple_leaves", "plants:apple_leaves", "plants:apple_leaves"], + ["", "tools:stick", ""] + ] +}); +furnace.registerRecipe({ + input: "dirt:dirt", + output: "core:cobble 2", + time: 5, +}); +dragonblocks.registerRecipe({ + result: "core:gravel 2", + recipe: [["core:cobble"]] +}); +dragonblocks.registerRecipe({ + result: "dirt:dirt 2", + recipe: [["core:gravel"]], +}); + diff --git a/sounds/skyblocks_finish_quest.ogg b/sounds/skyblocks_finish_quest.ogg new file mode 100755 index 0000000..e272caf Binary files /dev/null and b/sounds/skyblocks_finish_quest.ogg differ diff --git a/textures/skyblocks_skyblock.png b/textures/skyblocks_skyblock.png new file mode 100755 index 0000000..5306305 Binary files /dev/null and b/textures/skyblocks_skyblock.png differ