2 doors.registerDoor = function(obj){
3 if(! obj || ! obj.name)
5 obj.desc = obj.desc || dblib.humanFormat(obj.name) + " Door";
6 obj.hardness = obj.hardness || 1;
7 obj.groups = obj.groups || [];
8 let name = "doors:" + "door_" + obj.name;
9 let texture = "doors_" + "door_" + obj.name;
10 let sound = "doors_" + "door_" + obj.name;
11 dragonblocks.registerItem({
15 texture: texture + ".png",
16 onuse: (map, x, y) => {
17 if(! map.getNode(x, y) || map.getNode(x, y).stable || ! map.getNode(x, y - 1) || map.getNode(x, y - 1).stable)
19 map.setNode(x, y - 1, name + "_front_upper");
20 map.setNode(x, y, name + "_front_downer");
21 dragonblocks.items[name].playSound("place");
24 stacksize: obj.stacksize,
26 dragonblocks.registerNode({
27 name: name + "_front_upper",
31 hardness: obj.hardness,
33 texture: texture + "_front_upper.png",
34 ondig: (map, x, y) => {
35 if(map.getNode(x, y + 1) && map.getNode(x, y + 1).name == name + "_front_downer")
36 map.setNode(x, y + 1, "air");
38 onclick: (map, x, y) => {
39 if(map.getNode(x, y + 1) && map.getNode(x, y + 1).name == name + "_front_downer")
40 map.setNode(x, y + 1, name + "_side_downer");
41 map.setNode(x, y, name + "_side_upper");
42 dragonblocks.playSound(sound + "_close.ogg");
47 dragonblocks.registerNode({
48 name: name + "_front_downer",
52 hardness: obj.hardness,
54 texture: texture + "_front_downer.png",
55 ondig: (map, x, y) => {
56 if(map.getNode(x, y - 1) && map.getNode(x, y - 1).name == name + "_front_upper")
57 map.setNode(x, y - 1, "air");
59 onclick: (map, x, y) => {
60 if(map.getNode(x, y - 1) && map.getNode(x, y - 1).name == name + "_front_upper")
61 map.setNode(x, y - 1, name + "_side_upper");
62 map.setNode(x, y, name + "_side_downer");
63 dragonblocks.playSound(sound + "_close.ogg");
68 dragonblocks.registerNode({
69 name: name + "_side_upper",
72 hardness: obj.hardness,
74 texture: texture + "_side.png",
75 ondig: (map, x, y) => {
76 if(map.getNode(x, y + 1) && map.getNode(x, y + 1).name == name + "_side_downer")
77 map.setNode(x, y + 1, "air");
79 onclick: (map, x, y) => {
80 if(map.getNode(x, y + 1) && map.getNode(x, y + 1).name == name + "_side_downer")
81 map.setNode(x, y + 1, name + "_front_downer");
82 map.setNode(x, y, name + "_front_upper");
83 dragonblocks.playSound(sound + "_open.ogg");
88 dragonblocks.registerNode({
89 name: name + "_side_downer",
92 hardness: obj.hardness,
94 texture: texture + "_side.png",
95 ondig: (map, x, y) => {
96 if(map.getNode(x, y - 1) && map.getNode(x, y - 1).name == name + "_side_upper")
97 map.setNode(x, y - 1, "air");
99 onclick: (map, x, y) => {
100 if(map.getNode(x, y - 1) && map.getNode(x, y - 1).name == name + "_side_upper")
101 map.setNode(x, y - 1, name + "_front_upper");
102 map.setNode(x, y, name + "_front_downer");
103 dragonblocks.playSound(sound + "_open.ogg");
109 dragonblocks.registerRecipe({
112 [obj.material, obj.material],
113 [obj.material, obj.material],
114 [obj.material, obj.material],
118 doors.registerTrapdoor = function(obj){
119 if(! obj || ! obj.name)
121 obj.mod = obj.mod || "doors";
122 obj.desc = obj.desc || dblib.humanFormat(obj.name) + " Trapdoor";
123 obj.hardness = obj.hardness || 1;
124 obj.groups = obj.groups || [];
125 let name = obj.mod + ":" + "trapdoor_" + obj.name;
126 let texture = obj.mod + "_" + "trapdoor_" + obj.name;
127 let sound = obj.mod + "_" + "trapdoor_" + obj.name;
128 dragonblocks.registerNode({
133 hardness: obj.hardness,
135 texture: texture + ".png",
136 onclick: (map, x, y) => {
137 map.setNode(x, y, name + "_closed");
138 dragonblocks.playSound(sound + "_close.ogg");
140 stacksize: obj.stacksize,
142 dragonblocks.registerNode({
143 name: name + "_closed",
146 hardness: obj.hardness,
148 texture: texture + "_closed.png",
149 onclick: (map, x, y) => {
150 map.setNode(x, y, name);
151 dragonblocks.playSound(sound + "_open.ogg");
157 dragonblocks.registerRecipe({
160 [obj.material, obj.material, obj.material],
161 [obj.material, obj.material, obj.material],