Advertisement
Ehiltz

Directional Movement Detection

Jun 25th, 2016
982
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. -----Necessary Objectives-----
  2.  
  3. scoreboard objectives add testDir stat.walkOneCm
  4.  
  5. scoreboard objectives add walkingDir dummy
  6.  
  7. scoreboard objectives add nearestStand dummy
  8.  
  9. scoreboard objectives add correctDir dummy
  10.  
  11. scoreboard objectives add nearestDir dummy
  12.  
  13. -----Get Raw Directional Movement-----
  14.  
  15. execute @a[score_testDir_min=1] ~ ~ ~ scoreboard players set @e[type=ArmorStand,c=1,r=1,tag=testDir] nearestDir 1
  16.  
  17. scoreboard players reset * nearestStand
  18.  
  19. execute @e[type=ArmorStand,name=DirectionStand1,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 1
  20.  
  21. execute @e[type=ArmorStand,name=DirectionStand2,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 2
  22.  
  23. execute @e[type=ArmorStand,name=DirectionStand3,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 3
  24.  
  25. execute @e[type=ArmorStand,name=DirectionStand4,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 4
  26.  
  27. execute @e[type=ArmorStand,name=DirectionStand5,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 5
  28.  
  29. execute @e[type=ArmorStand,name=DirectionStand6,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 6
  30.  
  31. execute @e[type=ArmorStand,name=DirectionStand7,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 7
  32.  
  33. execute @e[type=ArmorStand,name=DirectionStand8,tag=testDir,score_nearestDir_min=1] ~ ~ ~ scoreboard players set @a[score_testDir_min=1,c=1,r=1] nearestStand 8
  34.  
  35. -----Get Player Rotation-----
  36.  
  37. scoreboard players reset * correctDir
  38.  
  39. scoreboard players set @a[score_testDir_min=1,rym=-113,ry=-68] correctDir 0
  40.  
  41. scoreboard players set @a[score_testDir_min=1,rym=-68,ry=-23] correctDir 1
  42.  
  43. scoreboard players set @a[score_testDir_min=1,rym=-23,ry=23] correctDir 2
  44.  
  45. scoreboard players set @a[score_testDir_min=1,rym=23,ry=68] correctDir 3
  46.  
  47. scoreboard players set @a[score_testDir_min=1,rym=68,ry=113] correctDir 4
  48.  
  49. scoreboard players set @a[score_testDir_min=1,rym=113,ry=158] correctDir 5
  50.  
  51. scoreboard players set @a[score_testDir_min=1,rym=158,ry=-158] correctDir 6
  52.  
  53. scoreboard players set @a[score_testDir_min=1,rym=-158,ry=-113] correctDir 7
  54.  
  55. -----Get Direction Value-----
  56.  
  57. scoreboard players set @a walkingDir 0
  58.  
  59. execute @a[score_testDir_min=1] ~ ~ ~ scoreboard players operation @a[c=1] walkingDir = @a[c=1] nearestStand
  60.  
  61. execute @a[score_testDir_min=1] ~ ~ ~ scoreboard players operation @a[c=1] walkingDir -= @a[c=1] correctDir
  62.  
  63. scoreboard players set @a[score_testDir_min=1,score_walkingDir=-8] walkingDir 8
  64.  
  65. scoreboard players add @a[score_testDir_min=1,score_walkingDir=-1] walkingDir 8
  66.  
  67. -----Reset System-----
  68.  
  69. kill @e[type=ArmorStand,tag=testDir]
  70.  
  71. -----Summon Armor Stands-----
  72.  
  73. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~1 ~ ~ {CustomName:"DirectionStand1",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  74.  
  75. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~.707106781187 ~ ~.707106781187 {CustomName:"DirectionStand2",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  76.  
  77. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~ ~ ~1 {CustomName:"DirectionStand3",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  78.  
  79. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~-.707106781187 ~ ~.707106781187 {CustomName:"DirectionStand4",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  80.  
  81. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~-1 ~ ~ {CustomName:"DirectionStand5",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  82.  
  83. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~-.707106781187 ~ ~-.707106781187 {CustomName:"DirectionStand6",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  84.  
  85. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~ ~ ~-1 {CustomName:"DirectionStand7",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  86.  
  87. execute @a[score_testDir_min=1] ~ ~ ~ summon ArmorStand ~.707106781187 ~ ~-.707106781187 {CustomName:"DirectionStand8",CustomNameVisible:0,Tags:["testDir"],NoGravity:1b,Small:1,Marker:1b,Invisible:1,Invulnerable:1,NoBasePlate:1}
  88.  
  89. -----Reset System Pt. 2-----
  90.  
  91. scoreboard players reset * testDir
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement