This repository has been archived by the owner on Jan 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 710
/
Copy pathPhilosophersStone_tombailey94.js
131 lines (119 loc) · 2.49 KB
/
PhilosophersStone_tombailey94.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Philosopher'sStone by tombailey94 with reference to http://tekkitclassic.wikia.com/wiki/Philosopher's_Stone
// version 0.0.2; not complete
var PS = 460;
var STONE = 1;
var GRASS = 2;
var COBBLESTONE = 4;
var SAND = 12;
var GRAVEL = 13;
var SANDSTONE = 24;
var TALLGRASS = 31;
var DEADBUSH = 32;
var BROWNMUSHROOM = 39;
var REDMUSHROOM = 40;
var PUMPKIN = 86;
var NETHERRACK = 87;
var MELON = 103;
function newLevel() {
ModPE.setItem(PS, "magma_cream", 0, "Philosophers Stone");
}
function swapUse(oldBlockId, damageValue) {
var newBlock = {
tileId:oldBlockId,
damageValue:damageValue
};
switch (oldBlockId) {
case STONE:
newBlock.tileId = COBBLESTONE;
break;
case COBBLESTONE:
newBlock.tileId = STONE;
break;
case GRASS:
newBlock.tileId = SAND;
break;
case SAND:
newBlock.tileId = GRASS;
break;
case TALLGRASS:
newBlock.tileId = DEADBUSH;
break;
case NETHERRACK:
newBlock.tileId = COBBLESTONE;
break;
case GRAVEL:
newBlock.tileId = SANDSTONE;
break;
case MELON:
newBlock.tileId = PUMPKIN;
break;
case PUMPKIN:
newBlock.tileId = MELON;
break;
case WOOD:
switch (damageValue) {
case 0: //oak
case 4:
case 8:
case 12:
newBlock.damageValue = 1;
break;
case 1: //spurce / pine
case 5:
case 9:
case 13:
newBlock.damageValue = 2;
break;
case 2: //birch
case 6:
case 10:
case 14:
newBlock.damageValue = 0;
break;
}
break;
case BROWNMUSHROOM:
newBlock.tileId = REDMUSHROOM;
break;
case REDMUSHROOM:
newBlock.tileId = BROWNMUSHROOM;
break;
}
return newBlock;
}
function swapDestroy(oldBlockId) {
var newBlockId = oldBlockId;
switch (oldBlockId) {
case STONE:
case COBBLESTONE:
newBlockId = GRASS;
break;
case GRASS:
case SAND:
newBlockId = COBBLESTONE;
break;
case SANDSTONE:
newBlockId = GRAVEL;
break;
case GLASS:
newBlockId = SAND;
break;
}
return newBlockId;
}
function useItem(x, y, z, itemId, blockId, side) { //acts as right click
if (itemId == PS) {
var newBlock = swapUse(blockId, Level.getData(x, y, z));
Level.setTile(x, y, z, newBlock.tileId, newBlock.damageValue);
}
}
function destroyBlock(x, y, z, side) { //acts as shift right click
if (Player.getCarriedItem() == PS) {
Level.setTile(x, y, z, swapDestroy(Level.getTile(x, y, z), Level.getData(x, y, z)));
}
}
function procCmd(command) {
if (command == "ps") {
Level.dropItem(Player.getX(), Player.getY(), Player.getZ(), 5, PS, 1, 0);
}
}