Paste #17180: Edit of P#17177 - Edit of P#17175 - Edit of P#17172 - Edit of P#17169 - Edit of P#17167 - Untitled P

Date: 2015/06/30 14:27:07 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Bender:
  type: assignment
  Interact Scripts:
  - 1 NPC_Bender
NPC_Bender:
  type: interact
  actions:
    on assignment:
    - trigger name:damage state:true
  steps:
    1:
      click trigger:
        script:
        - define %bender_type% <npc.flag[fire]>
#                                        ^^^
#                     Make sure you set this flag somewhere
#
        - if %bender_type% == fire {
          - define blocks li@m@netherrack|m@fire|m@lava
#                                           ^^^
#                                      Blocks to bend
          } else if %bender_type% == water {
# etc
          } else if %bender_type% == earth {
# etc
          } else if %bender_type% == air {
# etc
          }
        - define lift_blocks <npc.location.find.blocks[%blocks%].within[70]>
#                                                                           ^^^
#                                                                      set the range
        - flag <npc> remaining_blocks:|:%lift_blocks%
        - run s@BenderBlocks def:<npc>

BenderBlocks:
  type: task
  script:
  - def npc <%1%.as_npc>
  - if <%npc%.flag[remaining_blocks].as_list.size.as_int> > 0 {
    - define location <%npc%.flag[remaining_blocks].as_list.random>
    - define block <%location%.material.id>
    - modifyblock %location% m@air
    - spawn e@falling_block,%block%[velocity=<%npc%.location.block.add[0,2,0]>] %location% save:%location%_block
    - push <entry[%location%_block].spawned_entities> destination:<%npc%.location.block.add[0,2,0]> speed:0.1
    - flag %npc% remaining_blocks:<-:%location%
    - wait d@1.5s
    - run s@BenderBlocks def:%npc%
    }