Paste #6538: Edit of P#6533 - Edit of P#6531 - moving walls

Date: 2014/07/07 19:33:02 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# Moving Parkour Walls
#
"MovingWalls":
  type: world
  debug: true
  events:
    on reload scripts:
    - repeat 6 {
      - schematic unload name:wall%value%
      - schematic load name:wall%value%
      }
    - run InitMovingWalls delay:2s
    on otop loads:
    - repeat 6 {
      - schematic unload name:wall%value%
      - schematic load name:wall%value%
      }
    - run InitMovingWalls delay:2s

"InitMovingWalls":
  type: task
  debug: true
  script:
# To add a wall, def order is : startblock|position|direction
    - ^run LoopWall def:1|l@787,32,-392,otop|1|north
#    - ^run LoopWall def:l@361,18,-285,otop|2|south
#    - ^run LoopWall def:l@366,18,-285,otop|3|north
#    - ^run LoopWall def:l@366,18,-285,otop|4|south
#    - ^run LoopWall def:l@366,18,-285,otop|5|north
#    - ^run LoopWall def:l@366,18,-285,otop|1|south

#    - run InitMovingWalls delay:10s

"LoopWall":
  type: task
  debug: true
  script:
    - ^define wall_id wall<def[1]>
    - ^define lstart <def[2]>
    - ^define startpos <def[3]>
    - ^define direction <def[4]>
    - if <def[startpos].is[EQUALS].to[1]> {
      - ^define movement li@0|1|2|3|4|5|4|3|2|1
      }
      else if <def[startpos].is[EQUALS].to[2]> {
      - ^define movement li@1|2|3|4|5|4|3|2|1|0
      }
      else if <def[startpos].is[EQUALS].to[3]> {
      - ^define movement li@2|3|4|5|4|3|2|1|0|1
      }
      else if <def[startpos].is[EQUALS].to[4]> {
      - ^define movement li@3|4|5|4|3|2|1|0|1|2
      }
      else if <def[startpos].is[EQUALS].to[5]> {
      - ^define movement li@4|5|4|3|2|1|0|1|2|3
      }
    - if <def[direction].is[EQUALS].to[south]> {
      - define movement <def[movement].reverse>
      }
    - run MoveWall def:<def[movement].escaped>|%wall_id%|<def[lstart].escaped>

MoveWall:
  type: task
  debug: true
  script:
    - ^define movement <def[1].unescaped>
    - ^define wall_id %2%
    - ^define lstart <def[3].unescaped>
    - foreach %movement% {
      - schematic paste name:%wall_id% <def[lstart].sub[0,0,%value%]>
      - wait 5s
      }
#    - run MoveWall def:<def[movement].escaped>|%wall_id%|<def[lstart].escaped> delay:1s