Date: 2014/06/08 19:44:34 UTC-07:00
Type: Denizen Script
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
# Moving Parkour Maze
#
"MovingMaze":
type: world
debug: true
events:
on prison load:
- inject SetPlatforms
- inject InitMovingMaze
"SetPlatforms":
type: task
debug: true
script:
- ^flag global platform.1.min:l@373,40,-281,prison
- ^flag global platform.1.max:l@370,40,-282,prison
- ^flag global platform.1.mat:redstone_block
- ^flag global platform.1.axis:
- ^flag global platform.1.distance:5
- ^flag global platform.1.direction:-1
- ^flag global platform.2.min:l@375,40,-281,prison
- ^flag global platform.2.max:l@376,40,-278,prison
- ^flag global platform.2.mat:redstone_block
- ^flag global platform.2.axis:y
- ^flag global platform.2.distance:5
- ^flag global platform.2.direction:1
- ^flag global platform.3.min:l@352,6,-285,prison
- ^flag global platform.3.max:l@354,6,-287,prison
- ^flag global platform.3.mat:redstone_block
- ^flag global platform.3.axis:y
- ^flag global platform.3.distance:5
- ^flag global platform.3.direction:1
"InitMovingMaze":
type: task
debug: true
script:
# - ^run LoopPlatform def:<global.flag[platform.1.min]>|<global.flag[platform.1.max]>|<global.flag[platform.1.mat]>|<global.flag[platform.1.axis]>|<global.flag[platform.1.distance]>|<global.flag[platform.1.direction]>|
# - ^run LoopPlatform def:<global.flag[platform.2.min]>|<global.flag[platform.2.max]>|<global.flag[platform.2.mat]>|<global.flag[platform.2.axis]>|<global.flag[platform.2.distance]>|<global.flag[platform.2.direction]>|
- ^run LoopPlatform def:<global.flag[platform.3.min]>|<global.flag[platform.3.max]>|<global.flag[platform.3.mat]>|<global.flag[platform.3.axis]>|<global.flag[platform.3.distance]>|<global.flag[platform.3.direction]>|
# - run InitMovingMaze delay:10s
"LoopPlatform":
type: task
debug: true
script:
- ^define 1frontcorner <def[1]>
- ^define 1backcorner <def[2]>
- ^define material <def[3]>
- ^define axis <def[4]>
- ^define distance <def[5]>
- ^define direction <def[6]>
- ^define newpos <cu@%1frontcorner%|%1backcorner%.get_blocks>
- ^define movement li@0
- ^repeat %distance% {
- ^define movement %movement%|<def[value].mul[%direction%].as_int>
}
- ^repeat %distance% {
- ^define movement %movement%|<def[distance].sub[%value%].mul[%direction%].as_int>
}
- ^foreach %movement% {
- ^define oldpos %newpos%
- ^if %axis% == X {
- ^define newpos <cu@<def[1frontcorner].add[%value%,0,0]>|<def[1backcorner].add[%value%,0,0]>.get_blocks>
}
else if %axis% == Y {
- ^define spaceabove cu@<def[1frontcorner].add[0,%value%,0]>|<def[1backcorner].add[0,%value%,0]>
- ^define newpos <def[spaceabove].get_blocks>
- ^if <def[spaceabove].get_players || null > != null && %value% >> 0 {
- ^foreach <def[spaceabove].get_players> {
- ^push %value% destination:<def[value].location.add[0,1,0]>
}
}
}
else {
- ^define newpos <cu@<def[1frontcorner].add[0,0,%value%]>|<def[1backcorner].add[0,0,%value%]>.get_blocks>
}
- ^define templist <def[oldpos].exclude[%newpos%]>
- ^run ModifyBlocks def:<def[newpos].escaped>|%material% "delay:%loop_index%s"
- ^if <def[templist].is_empty> {
- announce "templist %templist%" to_ops
- ^run ModifyBlocks def:<def[templist].escaped>|air "delay:%loop_index%s"
}
}
"ModifyBlocks":
type: task
debug: true
script:
- ^modifyblock <def[1].unescaped> <def[2]>