]> git.lizzy.rs Git - dragonblocks.git/blob - game/chest/init.js
Map abstraction and World class
[dragonblocks.git] / game / chest / init.js
1 dragonblocks.registerNode({
2         name: "chest:chest",
3         texture: "chest_chest.png",
4         groups: ["choppy"],
5         hardness: 6,
6         desc: "Chest",
7         stable: true,
8         onset: (map, x, y) => {
9                 let meta = map.getNode(x, y).meta;
10                 meta.inventory = new dragonblocks.Inventory(32, 8);
11                 if(meta.inventoryString)
12                         meta.inventory.deserialize(meta.inventoryString);
13         },
14         onclick: (map, x, y) => {
15                 let meta = map.getNode(x, y).meta;
16                 dragonblocks.player.setInventoryElements([meta.inventory, dragonblocks.player.tmp.mainInventory]);
17                 dragonblocks.player.openInventory();
18                 dragonblocks.nodes["chest:chest"].playSound("open");
19                 dragonblocks.player.onNextInventoryClose = _ => {
20                         dragonblocks.player.resetInventoryElements();
21                         dragonblocks.nodes["chest:chest"].playSound("close");
22                         meta.inventoryString = meta.inventory.serialize();
23                 };
24         },
25         ondig: (map, x, y) => {
26                 return map.getNode(x, y).meta.inventory.isEmpty();
27         },
28         sounds: {
29                 open: "chest_open.ogg",
30                 close: "chest_close.ogg",
31         }
32 });
33 dragonblocks.registerRecipe({
34         result: "chest:chest",
35         recipe: [
36                 ["plants_wood", "plants_wood", "plants_wood"],
37                 ["plants_wood", "", "plants_wood"],
38                 ["plants_wood", "plants_wood", "plants_wood"],
39         ]
40 });