Paste #105371: Direction thingy

Date: 2023/01/14 01:20:30 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


direction_arrow_task:
    type: task
    debug: false
    definitions: loc
    script:
    - if !<[loc].exists>:
      - stop
    - define unicodes <script[direction_arrow_unicodes].data_key[images]>
    - define pl <player.location>
    - define angle <[pl].face[<[loc]>].yaw.sub[<[pl].yaw>]>
    - if <[angle]> < 0:
      - define angle:+:360
    #-North 0 degrees
    - if <[angle]> >= 0 && <[angle]> < 15:
      - define unicode <[unicodes].get[u0]>
    # 15 degrees
    - else if <[angle]> >= 15 && <[angle]> < 30:
      - define unicode <[unicodes].get[u15]>
    # 30 degrees
    - else if <[angle]> >= 30 && <[angle]> < 45:
      - define unicode <[unicodes].get[u30]>
    # 45 degrees
    - else if <[angle]> >= 45 && <[angle]> < 60:
      - define unicode <[unicodes].get[u45]>
    # 60 degrees
    - else if <[angle]> >= 60 && <[angle]> < 75:
      - define unicode <[unicodes].get[u60]>
    #-East 90 degrees
    - else if <[angle]> >= 75 && <[angle]> < 90:
      - define unicode <[unicodes].get[u90]>
    #-East 90 degrees
    - else if <[angle]> >= 90 && <[angle]> < 105:
      - define unicode <[unicodes].get[u90]>
    # 105 degrees
    - else if <[angle]> >= 105 && <[angle]> < 120:
      - define unicode <[unicodes].get[u105]>
    # 120 degrees
    - else if <[angle]> >= 120 && <[angle]> < 135:
      - define unicode <[unicodes].get[u120]>
    # 135 degrees
    - else if <[angle]> >= 135 && <[angle]> < 150:
      - define unicode <[unicodes].get[u135]>
    # 150 degrees
    - else if <[angle]> >= 150 && <[angle]> < 165:
      - define unicode <[unicodes].get[u150]>
    #-South 180 degrees
    - else if <[angle]> >= 165 && <[angle]> < 180:
      - define unicode <[unicodes].get[u180]>
    #-South 180 degrees
    - else if <[angle]> >= 180 && <[angle]> < 195:
      - define unicode <[unicodes].get[u180]>
    # 195 degrees
    - else if <[angle]> >= 195 && <[angle]> < 210:
      - define unicode <[unicodes].get[u195]>
    # 210 degrees
    - else if <[angle]> >= 210 && <[angle]> < 225:
      - define unicode <[unicodes].get[u210]>
    # 225 degrees
    - else if <[angle]> >= 225 && <[angle]> < 240:
      - define unicode <[unicodes].get[u225]>
    # 240 degrees
    - else if <[angle]> >= 240 && <[angle]> < 255:
      - define unicode <[unicodes].get[u240]>
    #-West 270 degrees
    - else if <[angle]> >= 255 && <[angle]> < 270:
      - define unicode <[unicodes].get[u270]>
    #-West 270 degrees
    - else if <[angle]> >= 270 && <[angle]> < 285:
      - define unicode <[unicodes].get[u270]>
    # 285 degrees
    - else if <[angle]> >= 285 && <[angle]> < 300:
      - define unicode <[unicodes].get[u285]>
    # 300 degrees
    - else if <[angle]> >= 300 && <[angle]> < 315:
      - define unicode <[unicodes].get[u300]>
    # 315 degrees
    - else if <[angle]> >= 315 && <[angle]> < 330:
      - define unicode <[unicodes].get[u315]>
    # 330 degrees
    - else if <[angle]> >= 330 && <[angle]> < 345:
      - define unicode <[unicodes].get[u330]>
    #-North 360 degrees
    - else if <[angle]> >= 345 && <[angle]> < 360:
      - define unicode <[unicodes].get[u0]>
    - flag <player> direction_arrow.unicode:<[unicode].if_null[<empty>]>

# In degrees
direction_arrow_unicodes:
    type: data
    images:
      u0: 
      u15: 
      u30: 
      u45: 
      u60: 
      u90: 
      u105: 
      u120: 
      u135: 
      u150: 
      u180: 
      u195: 
      u210: 
      u225: 
      u240: 
      u270: 
      u285: 
      u300: 
      u315: 
      u330: 