This repository was archived by the owner on Nov 29, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrollercoaster.js
More file actions
119 lines (94 loc) · 2.88 KB
/
Copy pathrollercoaster.js
File metadata and controls
119 lines (94 loc) · 2.88 KB
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
// rollercoaster.js
// This code is a CanaryMod/ScripCraft port of Mikael Jönsson's code published on http://vaxjo.coderdojo.se/scriptcraft-rollercoaster/
// Tested with CanaryMod-1.2.0 and ScriptCraft 3.1.4, Java 8
var Drone = require('drone');
function rail_up(block_type, length) {
var drone = this;
drone.box(block_type, 1, 1, length);
drone.up();
drone.box(blocks.rail, 1, 1, length);
drone.fwd(length);
}
Drone.extend(rail_up);
// Testkör i chatten:
// js rail_up(blocks.stone, 5)
function rail_fwd(block_type, length) {
var drone = this;
drone.rail_up(block_type, length);
drone.down();
}
Drone.extend(rail_fwd);
// Testkör i chatten:
// js rail_fwd(blocks.stone, 5)
function rail_down(block_type, length) {
var drone = this;
drone.down();
drone.rail_fwd(block_type, length);
}
Drone.extend(rail_down);
// Testkör i chatten:
// js rail_down(blocks.stone, 5)
function power_rail_up(block_type, length) {
var drone = this;
drone.box(block_type, 1, 1, length);
drone.down();
drone.box(blocks.torch_redstone_active, 1, 1, 1);
drone.up();
drone.up();
drone.box(blocks.powered_rail, 1, 1, length);
drone.fwd(length);
}
Drone.extend(power_rail_up);
// Testkör i chatten:
// js power_rail_up(blocks.stone, 5)
function rollercoaster() {
var drone = this, // Vi är en drönare, ett osynligt flygande föremål i ScriptCraft som sätter ut block
i;
drone.fwd(5); // Drönaren går 5 steg framåt
drone.rail_fwd(blocks.stone, 1); // Säger åt drönaren att skapa ett stenblock med räls på
// En slinga (känner du igen den från scratch?) som skapar en backe med power rails
for (i = 0; i < 36; i++) {
drone.power_rail_up(blocks.stone, 1);
}
drone.rail_fwd(blocks.stone, 1);
drone.turn(); // Svänger dronen åt höger
drone.rail_fwd(blocks.stone, 1);
// En slinga som gör en utförsbacke
for (i = 0; i < 10; i++) {
drone.rail_down(blocks.stone, 1);
}
drone.rail_fwd(blocks.stone, 1); // Kommer du ihåg vad denna gjorde?
drone.turn();
drone.rail_fwd(blocks.stone, 10);
drone.turn();
drone.rail_fwd(blocks.stone, 2);
// Ännu en nerförsbacke. Glöm inte bort att testa!
for (i = 0; i < 15; i++) {
drone.rail_down(blocks.stone, 1);
}
drone.rail_fwd(blocks.stone, 2);
drone.back(); // Backar ett steg
drone.turn(3); // Svänger 3 steg (270 grader), åt vänster i detta fallet
drone.rail_fwd(blocks.stone, 10);
drone.back();
drone.turn(3);
drone.fwd();
drone.rail_fwd(blocks.stone, 10);
drone.back();
drone.turn();
drone.fwd();
drone.rail_fwd(blocks.stone, 2);
for (i = 0; i < 11; i++) {
drone.rail_down(blocks.stone, 1);
}
drone.rail_fwd(blocks.stone, 10);
drone.back();
drone.turn();
drone.fwd();
drone.rail_fwd(blocks.stone, 4);
drone.back();
drone.turn();
drone.fwd();
drone.rail_fwd(blocks.stone, 3);
}; // rollercoaster
Drone.extend(rollercoaster);