]> git.lizzy.rs Git - skyblocks.git/commitdiff
Initial Commit
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 26 Apr 2020 09:49:37 +0000 (11:49 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 26 Apr 2020 09:49:37 +0000 (11:49 +0200)
README [new file with mode: 0644]
dependencies.txt [new file with mode: 0644]
gui.js [new file with mode: 0644]
init.js [new file with mode: 0644]
mapgen.js [new file with mode: 0644]
misc.js [new file with mode: 0644]
quests.js [new file with mode: 0644]
quests.json [new file with mode: 0644]
recipes.js [new file with mode: 0644]
sounds/skyblocks_finish_quest.ogg [new file with mode: 0755]
textures/skyblocks_skyblock.png [new file with mode: 0755]

diff --git a/README b/README
new file mode 100644 (file)
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 (file)
index 0000000..f068578
--- /dev/null
@@ -0,0 +1,7 @@
+furnace
+plants
+tools
+chest
+core
+dirt
+chat
diff --git a/gui.js b/gui.js
new file mode 100644 (file)
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 (file)
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 (file)
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 (file)
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 (file)
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 (file)
index 0000000..2a24d3f
--- /dev/null
@@ -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 (file)
index 0000000..a31ec65
--- /dev/null
@@ -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 (executable)
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 (executable)
index 0000000..5306305
Binary files /dev/null and b/textures/skyblocks_skyblock.png differ