Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nea-c/MarkerMotion
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.2
Choose a base ref
...
head repository: nea-c/MarkerMotion
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 12 commits
  • 119 files changed
  • 1 contributor

Commits on Mar 21, 2023

  1. update: v3.3

    nea-c committed Mar 21, 2023
    Copy the full SHA
    ab88dfc View commit details
  2. Merge pull request #26 from nea-c/dev

    update: v3.3
    nea-c authored Mar 21, 2023
    Copy the full SHA
    fe63200 View commit details

Commits on Mar 31, 2023

  1. miss

    nea-c committed Mar 31, 2023
    Copy the full SHA
    586308e View commit details
  2. Merge pull request #27 from nea-c/dev

    miss
    nea-c authored Mar 31, 2023
    Copy the full SHA
    817e489 View commit details
  3. Update README.md

    nea-c committed Mar 31, 2023
    Copy the full SHA
    7dc0573 View commit details
  4. Merge pull request #28 from nea-c/dev

    Update README.md
    nea-c authored Mar 31, 2023
    Copy the full SHA
    28d030a View commit details

Commits on May 1, 2023

  1. Update README.md

    nea-c committed May 1, 2023
    Copy the full SHA
    5ca2ef2 View commit details
  2. Merge pull request #29 from nea-c/dev

    Update README.md
    nea-c authored May 1, 2023
    Copy the full SHA
    73e721d View commit details
  3. Update README.md

    nea-c committed May 1, 2023
    Copy the full SHA
    86f4b05 View commit details
  4. Merge pull request #30 from nea-c/dev

    Update README.md
    nea-c authored May 1, 2023
    Copy the full SHA
    fd5611a View commit details

Commits on Jun 29, 2023

  1. v3.5

    nea-c committed Jun 29, 2023
    Copy the full SHA
    53c5768 View commit details
  2. Merge pull request #31 from nea-c/dev

    v3.5
    nea-c authored Jun 29, 2023
    Copy the full SHA
    dd481ad View commit details
Showing with 1,010 additions and 546 deletions.
  1. +0 −3 MarkerMotion/data/marker_motion/functions/bounce/conside_gravity.mcfunction
  2. +0 −47 MarkerMotion/data/marker_motion/functions/get_move.mcfunction
  3. +7 −14 MarkerMotion/data/marker_motion/functions/main.mcfunction
  4. +0 −46 MarkerMotion/data/marker_motion/functions/set_arrival_pos.mcfunction
  5. +42 −15 MarkerMotion/data/marker_motion/functions/tp/.mcfunction
  6. +24 −0 MarkerMotion/data/marker_motion/functions/tp/0.mcfunction
  7. +2 −2 MarkerMotion/data/marker_motion/functions/tp/1.mcfunction
  8. +2 −2 MarkerMotion/data/marker_motion/functions/tp/2.mcfunction
  9. +2 −2 MarkerMotion/data/marker_motion/functions/tp/3.mcfunction
  10. +2 −2 MarkerMotion/data/marker_motion/functions/tp/4.mcfunction
  11. +2 −2 MarkerMotion/data/marker_motion/functions/tp/5.mcfunction
  12. +14 −18 MarkerMotion/data/marker_motion/functions/tp/6.mcfunction
  13. +21 −22 MarkerMotion/data/marker_motion/functions/tp/block.mcfunction
  14. +1 −1 MarkerMotion/data/marker_motion/functions/tp/check.mcfunction
  15. +3 −3 MarkerMotion/data/marker_motion/functions/tp/point.mcfunction
  16. +3 −9 MarkerMotion/data/marker_motion/functions/tp/targets.mcfunction
  17. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/condition.json
  18. +5 −2 MarkerMotion/data/marker_motion/predicates/block_check/condition/no_collision.json
  19. +9 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape.json
  20. +4 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/check.json
  21. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/down.json
  22. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/east.json
  23. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/north.json
  24. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/south.json
  25. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/up.json
  26. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/offset/west.json
  27. +6 −6 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/piston_head/summary.json
  28. +6 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/pitcher_crop/check.json
  29. +159 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/pitcher_crop/offset/up.json
  30. +20 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/pitcher_crop/offset/up_not.json
  31. +15 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/pitcher_crop/summary.json
  32. +10 −9 MarkerMotion/data/marker_motion/predicates/block_check/shape/erosion/summary.json
  33. +7 −7 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/amethysts/amethyst_cluster.json
  34. +7 −7 ...erMotion/data/marker_motion/predicates/block_check/shape/normal/amethysts/large_amethyst_bud.json
  35. +7 −7 ...rMotion/data/marker_motion/predicates/block_check/shape/normal/amethysts/medium_amethyst_bud.json
  36. +7 −7 ...erMotion/data/marker_motion/predicates/block_check/shape/normal/amethysts/small_amethyst_bud.json
  37. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/amethysts/summary.json
  38. +20 −20 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/anvil.json
  39. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/azaleas.json
  40. +2 −2 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/bamboo.json
  41. +4 −4 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/beds.json
  42. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/bell/floor.json
  43. +15 −15 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/bell/not_floor.json
  44. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/bell/summary.json
  45. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/big_dripleaf.json
  46. +3 −3 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/brewing_stand.json
  47. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/cactus.json
  48. +3 −3 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/cakes.json
  49. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/campfires.json
  50. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/candle.json
  51. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/carpets.json
  52. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/cauldron.json
  53. +4 −4 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/chain.json
  54. +14 −14 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/chests.json
  55. +3 −3 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/chorus_plant.json
  56. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/comparator.json
  57. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/composter.json
  58. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/conduit.json
  59. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/daylight_detector.json
  60. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/decorated_pot.json
  61. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/dirt_path.json
  62. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/doors.json
  63. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/dragon_egg.json
  64. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/enchanting_table.json
  65. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/end_portal_frame.json
  66. +7 −7 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/end_rod.json
  67. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/ender_chest.json
  68. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/farmland.json
  69. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/fence_gates.json
  70. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/fences.json
  71. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/flower_pots.json
  72. +2 −2 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/glass_panes.json
  73. +26 −26 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/grindstone.json
  74. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/honey_block.json
  75. +16 −16 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/hopper.json
  76. +2 −2 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/iron_bars.json
  77. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/ladder.json
  78. +4 −4 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/lanterns.json
  79. +2 −2 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/lectern.json
  80. +7 −7 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/lightning_rod.json
  81. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/lily_pad.json
  82. +16 −16 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/mob_heads.json
  83. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/mud.json
  84. +7 −7 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/piston_head.json
  85. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/pistons.json
  86. +236 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/pitcher_crop.json
  87. +6 −6 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/pointed_dripstone.json
  88. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/repeater.json
  89. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/sculk_sensor.json
  90. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/sculk_shrieker.json
  91. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/sea_pickle.json
  92. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/slabs.json
  93. +86 −0 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/sniffer_egg.json
  94. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/snow.json
  95. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/soul_sand.json
  96. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/stairs.json
  97. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/stonecutter.json
  98. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/trapdoors.json
  99. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/turtle_egg.json
  100. +5 −5 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/wall_hanging_sign.json
  101. +1 −1 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/walls/none_tall.json
  102. +7 −7 MarkerMotion/data/marker_motion/predicates/block_check/shape/normal/walls/summary.json
  103. +1 −1 MarkerMotion/data/marker_motion/predicates/stop.json
  104. +2 −1 MarkerMotion/data/marker_motion/tags/blocks/flower_pots.json
  105. +2 −2 MarkerMotion/data/marker_motion/tags/blocks/no_collision.json
  106. +1 −0 MarkerMotion/data/marker_motion/tags/blocks/slabs.json
  107. +1 −0 MarkerMotion/data/marker_motion/tags/blocks/stairs.json
  108. +0 −6 MarkerMotion/data/marker_motion/tags/entity_types/selector.json
  109. +2 −2 MarkerMotion/pack.mcmeta
  110. +1 −1 MarkerMotionExample/data/marker_motion_example/functions/normal_speedup.mcfunction
  111. +0 −10 MarkerMotionExample/data/marker_motion_example/functions/particle/get_vector.mcfunction
  112. +8 −0 MarkerMotionExample/data/marker_motion_example/functions/particle/loop.mcfunction
  113. +2 −4 MarkerMotionExample/data/marker_motion_example/functions/particle/main.mcfunction
  114. +1 −3 MarkerMotionExample/data/marker_motion_example/functions/particle/render.mcfunction
  115. +1 −2 MarkerMotionExample/data/marker_motion_example/functions/tick/1.mcfunction
  116. +1 −1 MarkerMotionExample/data/marker_motion_example/functions/tick/2.mcfunction
  117. +1 −2 MarkerMotionExample/data/marker_motion_example/functions/tick/3.mcfunction
  118. +2 −2 MarkerMotionExample/pack.mcmeta
  119. +19 −19 README.md
Original file line number Diff line number Diff line change
@@ -11,6 +11,3 @@

# Y方向接触時、重力合計を反転
execute if score #MarkerMotion.BlockCheck neac_value matches 3..4 store result storage neac: _.MarkerMotion.GravitySum int -1 run scoreboard players get #MarkerMotion.GravitySum neac_value

# スコアリセット
scoreboard players reset #MarkerMotion.Bounce.CG.GSumAtCGPrevBounce
47 changes: 0 additions & 47 deletions MarkerMotion/data/marker_motion/functions/get_move.mcfunction

This file was deleted.

21 changes: 7 additions & 14 deletions MarkerMotion/data/marker_motion/functions/main.mcfunction
Original file line number Diff line number Diff line change
@@ -20,20 +20,16 @@
execute unless data storage neac: _.MarkerMotion.speed.loss{type:"*"} store result score #MarkerMotion.SpeedLoss neac_value run data get storage neac: _.MarkerMotion.speed.loss.amount 100
execute if data storage neac: _.MarkerMotion.speed.loss{type:"*"} if data storage neac: _.MarkerMotion.speed.loss.amount store result score #MarkerMotion.SpeedLoss neac_value run data get storage neac: _.MarkerMotion.speed.loss.amount 1000

# 到達目標位置用の取得に使うエンティティセットアップ
# なんか残ってたらkill
execute if entity @e[type=#marker_motion:selector,tag=MarkerMotion.this,limit=1] run kill @e[type=#marker_motion:selector,tag=MarkerMotion.this]
execute summon marker run function marker_motion:set_arrival_pos

# 1瞬だけつくようにBounce検知用タグの削除。付与は marker_motion:bounce
execute if entity @s[tag=MarkerMotion.bounce] run tag @s remove MarkerMotion.bounce
# 接触したブロックが1tickの間前回と同じのにならないようにする
data modify storage neac: _.BounceDirectionDisable set from storage neac: _.MarkerMotion.BounceDirection
data remove storage neac: _.MarkerMotion.BounceDirection
# 現在位置と到達目標位置の間にブロックがあるかチェック
# function再起で到達目標位置までの間にブロックがあるかチェック
# その際targetタグがいればヒット判定を返す また、stopwith.hitがtrueであればMarkerMotion.stopwith.hitを返す
execute facing entity @e[type=#marker_motion:selector,tag=MarkerMotion.this,limit=1] feet run function marker_motion:tp/
execute if data storage neac: _.MarkerMotion.BounceDirection run data modify storage neac: _.BounceDirectionDisable set from storage neac: _.MarkerMotion.BounceDirection
execute if data storage neac: _.MarkerMotion.BounceDirection run data remove storage neac: _.MarkerMotion.BounceDirection
# 到達目標位置を取得してそこまでの間にブロックがあるかチェック
# その際targetタグがいればヒット判定も返す
tag @s add MarkerMotion.me
execute summon marker run function marker_motion:tp/
tag @s remove MarkerMotion.me

# スピード減少
# +
@@ -56,9 +52,6 @@
scoreboard players reset #MarkerMotion.Gravity
scoreboard players reset #MarkerMotion.GravitySum

# 最初の実行位置から移動位置までの距離からMoveを算出 + kill
execute facing entity @s feet as @e[type=#marker_motion:selector,tag=MarkerMotion.this,limit=1] run function marker_motion:get_move

# ストレージデータを自身に返して初期化
data modify entity @s data.MarkerMotion set from storage neac: _.MarkerMotion
data remove storage neac: _

This file was deleted.

57 changes: 42 additions & 15 deletions MarkerMotion/data/marker_motion/functions/tp/.mcfunction
Original file line number Diff line number Diff line change
@@ -1,25 +1,52 @@
#> marker_motion:tp/
#
# 移動先目標までの間にブロックがあるか探す処理
# その際にヒットボックスでのヒットを行ったりできる
# 到達目標位置をへ自身を移動させ、その間をチェック
#
# @within
# function marker_motion:main
# @within function marker_motion:main


# プレイヤーの視線をx軸で反転させた角度
execute as @e[type=#marker_motion:selector,tag=MarkerMotion.this,limit=1] positioned 0.0 0.0 0.0 positioned ^ ^ ^2 positioned 0.0 ~ ~ positioned ^ ^ ^-1 facing 0.0 0.0 0.0 positioned as @s run tp @s ~ ~ ~ ~ ~
# 相対で移動
scoreboard players operation #MarkerMotion.TMP neac_value = #MarkerMotion.Speed neac_value

# 初期化
data modify storage neac: _.tp set value [[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}]]
execute if score #MarkerMotion.TMP neac_value matches 2048.. positioned as @s run tp @s ^ ^ ^20.48
execute if score #MarkerMotion.TMP neac_value matches 2048.. run scoreboard players remove #MarkerMotion.TMP neac_value 2048
execute if score #MarkerMotion.TMP neac_value matches 1024.. positioned as @s run tp @s ^ ^ ^10.24
execute if score #MarkerMotion.TMP neac_value matches 1024.. run scoreboard players remove #MarkerMotion.TMP neac_value 1024
execute if score #MarkerMotion.TMP neac_value matches 512.. positioned as @s run tp @s ^ ^ ^5.12
execute if score #MarkerMotion.TMP neac_value matches 512.. run scoreboard players remove #MarkerMotion.TMP neac_value 512
execute if score #MarkerMotion.TMP neac_value matches 256.. positioned as @s run tp @s ^ ^ ^2.56
execute if score #MarkerMotion.TMP neac_value matches 256.. run scoreboard players remove #MarkerMotion.TMP neac_value 256
execute if score #MarkerMotion.TMP neac_value matches 128.. positioned as @s run tp @s ^ ^ ^1.28
execute if score #MarkerMotion.TMP neac_value matches 128.. run scoreboard players remove #MarkerMotion.TMP neac_value 128
execute if score #MarkerMotion.TMP neac_value matches 64.. positioned as @s run tp @s ^ ^ ^0.64
execute if score #MarkerMotion.TMP neac_value matches 64.. run scoreboard players remove #MarkerMotion.TMP neac_value 64
execute if score #MarkerMotion.TMP neac_value matches 32.. positioned as @s run tp @s ^ ^ ^0.32
execute if score #MarkerMotion.TMP neac_value matches 32.. run scoreboard players remove #MarkerMotion.TMP neac_value 32
execute if score #MarkerMotion.TMP neac_value matches 16.. positioned as @s run tp @s ^ ^ ^0.16
execute if score #MarkerMotion.TMP neac_value matches 16.. run scoreboard players remove #MarkerMotion.TMP neac_value 16
execute if score #MarkerMotion.TMP neac_value matches 8.. positioned as @s run tp @s ^ ^ ^0.08
execute if score #MarkerMotion.TMP neac_value matches 8.. run scoreboard players remove #MarkerMotion.TMP neac_value 8
execute if score #MarkerMotion.TMP neac_value matches 4.. positioned as @s run tp @s ^ ^ ^0.04
execute if score #MarkerMotion.TMP neac_value matches 4.. run scoreboard players remove #MarkerMotion.TMP neac_value 4
execute if score #MarkerMotion.TMP neac_value matches 2.. positioned as @s run tp @s ^ ^ ^0.02
execute if score #MarkerMotion.TMP neac_value matches 2.. run scoreboard players remove #MarkerMotion.TMP neac_value 2
execute if score #MarkerMotion.TMP neac_value matches 1.. positioned as @s run tp @s ^ ^ ^0.01
execute if score #MarkerMotion.TMP neac_value matches 1.. run scoreboard players remove #MarkerMotion.TMP neac_value 1

# ifに引っかからない対策で少しだけ後ろに移動しておく
execute positioned as @s run tp @s ^ ^ ^-0.0000152587890625

# 到達目標位置が近くてspeedが0以下であれば停止
execute if entity @e[type=#marker_motion:selector,tag=MarkerMotion.this,distance=..0.0078125,limit=1] if score #MarkerMotion.Speed neac_value matches ..0 run tag @s add MarkerMotion.speed.0
# GravitySumが0でなければ移動後のY座標から重力分を引いた座標に移動する
execute unless score #MarkerMotion.GravitySum neac_value matches 0 store result score #MarkerMotion.TMP neac_value run data get entity @s Pos[1] 1000000
execute unless score #MarkerMotion.GravitySum neac_value matches 0 store result entity @s Pos[1] double 0.000001 run scoreboard players operation #MarkerMotion.TMP neac_value -= #MarkerMotion.GravitySum neac_value

# 最大ループ回数指定
scoreboard players set #MarkerMotion.loop neac_value 41
# 到達目標位置が近くになければそこまでの間のブロックをループでチェック
execute unless entity @e[type=#marker_motion:selector,tag=MarkerMotion.this,distance=..0.0078125,limit=1] positioned ^ ^ ^0.5 run function marker_motion:tp/1
# スコアリセット
scoreboard players reset #MarkerMotion.loop
scoreboard players reset #MarkerMotion.TMP


# 自身の方向を見てチェックしていく
execute facing entity @s feet run function marker_motion:tp/0


# kill
kill @s
24 changes: 24 additions & 0 deletions MarkerMotion/data/marker_motion/functions/tp/0.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#> marker_motion:tp/0
#
# 移動先目標までの間にブロックがあるか探す処理
# その際にヒットボックスでのヒットを行ったりできる
#
# @within
# function marker_motion:main


# プレイヤーの視線をx軸で反転させた角度
execute positioned 0.0 0.0 0.0 positioned ^ ^ ^2 positioned 0.0 ~ ~ positioned ^ ^ ^-1 facing 0.0 0.0 0.0 positioned as @s run tp @s ~ ~ ~ ~ ~

# 初期化
data modify storage neac: _.tp set value [[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}],[{success:0b}]]

# 到達目標位置が近くてspeedが0以下であれば停止
execute if entity @s[distance=..0.0078125] if score #MarkerMotion.Speed neac_value matches ..0 run tag @e[type=marker,tag=MarkerMotion.me,limit=1] add MarkerMotion.speed.0

# 最大ループ回数指定
scoreboard players set #MarkerMotion.loop neac_value 41
# 到達目標位置が近くになければそこまでの間のブロックをループでチェック
execute unless entity @s[distance=..0.0078125] positioned ^ ^ ^0.5 run function marker_motion:tp/1
# スコアリセット
scoreboard players reset #MarkerMotion.loop
4 changes: 2 additions & 2 deletions MarkerMotion/data/marker_motion/functions/tp/1.mcfunction
Original file line number Diff line number Diff line change
@@ -12,13 +12,13 @@ data modify storage neac: _.tp[0][].success set value 1b

# ブロック探査
execute if data storage neac: _.MarkerMotion.stopwith{block:0b} run data modify storage neac: _.tp[0][].success set value 0b
execute unless data storage neac: _.MarkerMotion.stopwith{block:0b} if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated ~180 ~ if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated as @e[type=#marker_motion:selector,tag=MarkerMotion.this,limit=1] if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated ~180 ~ if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision if predicate marker_motion:block_check/shape/erosion/check run data modify storage neac: _.tp[0][].success set value 0b
execute unless data storage neac: _.MarkerMotion.stopwith{block:0b} if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated ~180 ~ if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated as @s if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision rotated ~180 ~ if block ^ ^ ^0.5 #marker_motion:no_collision if block ^ ^ ^-0.5 #marker_motion:no_collision if predicate marker_motion:block_check/shape/erosion/check run data modify storage neac: _.tp[0][].success set value 0b

# エンティティ探査
execute if entity @e[tag=MarkerMotion.target,limit=1] positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[tag=MarkerMotion.target,dx=0,dy=0,dz=0,limit=1] run data modify storage neac: _.tp[0][].success set value 1b

# 到達点探査
execute if entity @e[type=#marker_motion:selector,tag=MarkerMotion.this,distance=..0.5,limit=1] run data modify storage neac: _.tp[0][].success set value 1b
execute if entity @s[distance=..0.5] run data modify storage neac: _.tp[0][].success set value 1b


# 上で満たしたらさらに細かくチェック
Loading