diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/_index.d.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/_index.d.mcfunction index e8e99c6a66..6a7c8bcd12 100644 --- a/TheSkyBlessing/data/asset_manager/functions/artifact/_index.d.mcfunction +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/_index.d.mcfunction @@ -19,7 +19,8 @@ #> Trigger検知用 # @within function -# asset_manager:artifact/triggers/** +# asset_manager:artifact/triggers/ +# asset_manager:artifact/triggers/*/ # core:handler/** #declare tag TriggerFlag.ClickCarrot #declare tag TriggerFlag.UseItem diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/.mcfunction new file mode 100644 index 0000000000..4c467a71f0 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/.mcfunction @@ -0,0 +1,16 @@ +#> asset_manager:artifact/triggers/click/ +# +# +# +# @within function asset_manager:artifact/triggers/trigger/foreach/call.m + +# フラグが存在しているか確認する + execute if entity @s[tag=!TriggerFlag.ClickCarrot] run return fail +# 使用条件を満たしているか確認する + function asset_manager:artifact/check/ + function asset_manager:artifact/triggers/click/check.m with storage asset:context +# 条件を満たしていれば使用する + execute if entity @s[tag=CanUsed] run function asset_manager:artifact/triggers/click/use + +# リセット + tag @s remove CanUsed diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/check.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/check.m.mcfunction new file mode 100644 index 0000000000..7366e5167f --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/check.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/click/check.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/click/ + +$function asset:artifact/alias/$(id)/click/check diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/click.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/click.m.mcfunction new file mode 100644 index 0000000000..cbb781baf0 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/click.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/click/click.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/click/use + +$function asset:artifact/alias/$(id)/click/ diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/use.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/use.mcfunction new file mode 100644 index 0000000000..35bbd2fc69 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/click/use.mcfunction @@ -0,0 +1,19 @@ +#> asset_manager:artifact/triggers/click/use +# +# +# +# @within function asset_manager:artifact/triggers/click/ + +# 共通処理 +# アイテムを破壊するとBrokeItemが追加される + function asset_manager:artifact/use/ + +# 処理対象の神器の重複数を取得する + execute store result storage asset:context Count int 1 if data storage asset:artifact TargetItemList[] + +# 神器を呼び出し + function asset_manager:artifact/triggers/click/click.m with storage asset:context + +# リセット + data remove storage asset:context BrokeItem + data remove storage asset:context Count diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/.mcfunction new file mode 100644 index 0000000000..07a2df2591 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/.mcfunction @@ -0,0 +1,16 @@ +#> asset_manager:artifact/triggers/keep_click/ +# +# +# +# @within function asset_manager:artifact/triggers/trigger/foreach/call.m + +# フラグが存在しているか確認する + execute if entity @s[tag=!TriggerFlag.UsingItem] run return fail +# 使用条件を満たしているか確認する + function asset_manager:artifact/check/ + function asset_manager:artifact/triggers/keep_click/check.m with storage asset:context +# 条件を満たしていれば使用する + execute if entity @s[tag=CanUsed] run function asset_manager:artifact/triggers/keep_click/use + +# リセット + tag @s remove CanUsed diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/check.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/check.m.mcfunction new file mode 100644 index 0000000000..0e1354bba6 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/check.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/keep_click/check.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/keep_click/ + +$function asset:artifact/alias/$(id)/keep_click/check diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/keep_click.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/keep_click.m.mcfunction new file mode 100644 index 0000000000..05abe0353b --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/keep_click.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/keep_click/keep_click.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/keep_click/use + +$function asset:artifact/alias/$(id)/keep_click/ diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/use.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/use.mcfunction new file mode 100644 index 0000000000..41c7378b3a --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/keep_click/use.mcfunction @@ -0,0 +1,19 @@ +#> asset_manager:artifact/triggers/keep_click/use +# +# +# +# @within function asset_manager:artifact/triggers/keep_click/ + +# 共通処理 +# アイテムを破壊するとBrokeItemが追加される + function asset_manager:artifact/use/ + +# 処理対象の神器の重複数を取得する + execute store result storage asset:context Count int 1 if data storage asset:artifact TargetItemList[] + +# 神器を呼び出し + function asset_manager:artifact/triggers/keep_click/keep_click.m with storage asset:context + +# リセット + data remove storage asset:context BrokeItem + data remove storage asset:context Count diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/.mcfunction new file mode 100644 index 0000000000..40e5319ed9 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/.mcfunction @@ -0,0 +1,16 @@ +#> asset_manager:artifact/triggers/tick/ +# +# +# +# @within function asset_manager:artifact/triggers/trigger/foreach/call.m + +# フラグが存在しているか確認する + # return fail +# 使用条件を満たしているか確認する + function asset_manager:artifact/check/ + function asset_manager:artifact/triggers/tick/check.m with storage asset:context +# 条件を満たしていれば使用する + execute if entity @s[tag=CanUsed] run function asset_manager:artifact/triggers/tick/use + +# リセット + tag @s remove CanUsed diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/check.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/check.m.mcfunction new file mode 100644 index 0000000000..7c72372647 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/check.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/tick/check.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/tick/ + +$function asset:artifact/alias/$(id)/tick/check diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/tick.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/tick.m.mcfunction new file mode 100644 index 0000000000..a497421b6b --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/tick.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/tick/tick.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/tick/use + +$function asset:artifact/alias/$(id)/tick/ diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/use.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/use.mcfunction new file mode 100644 index 0000000000..1ae46d0cdd --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/tick/use.mcfunction @@ -0,0 +1,19 @@ +#> asset_manager:artifact/triggers/tick/use +# +# +# +# @within function asset_manager:artifact/triggers/tick/ + +# 共通処理 +# アイテムを破壊するとBrokeItemが追加される + function asset_manager:artifact/use/ + +# 処理対象の神器の重複数を取得する + execute store result storage asset:context Count int 1 if data storage asset:artifact TargetItemList[] + +# 神器を呼び出し + function asset_manager:artifact/triggers/tick/tick.m with storage asset:context + +# リセット + data remove storage asset:context BrokeItem + data remove storage asset:context Count diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/.mcfunction new file mode 100644 index 0000000000..0aecba77f7 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/.mcfunction @@ -0,0 +1,16 @@ +#> asset_manager:artifact/triggers/use_item/ +# +# +# +# @within function asset_manager:artifact/triggers/trigger/foreach/call.m + +# フラグが存在しているか確認する + execute if entity @s[tag=!TriggerFlag.UseItem] run return fail +# 使用条件を満たしているか確認する + function asset_manager:artifact/check/ + function asset_manager:artifact/triggers/use_item/check.m with storage asset:context +# 条件を満たしていれば使用する + execute if entity @s[tag=CanUsed] run function asset_manager:artifact/triggers/use_item/use + +# リセット + tag @s remove CanUsed diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/check.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/check.m.mcfunction new file mode 100644 index 0000000000..2d8bf268af --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/check.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/use_item/check.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/use_item/ + +$function asset:artifact/alias/$(id)/use_item/check diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use.mcfunction new file mode 100644 index 0000000000..08edabf423 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use.mcfunction @@ -0,0 +1,19 @@ +#> asset_manager:artifact/triggers/use_item/use +# +# +# +# @within function asset_manager:artifact/triggers/use_item/ + +# 共通処理 +# アイテムを破壊するとBrokeItemが追加される + function asset_manager:artifact/use/ + +# 処理対象の神器の重複数を取得する + execute store result storage asset:context Count int 1 if data storage asset:artifact TargetItemList[] + +# 神器を呼び出し + function asset_manager:artifact/triggers/use_item/use_item.m with storage asset:context + +# リセット + data remove storage asset:context BrokeItem + data remove storage asset:context Count diff --git a/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use_item.m.mcfunction b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use_item.m.mcfunction new file mode 100644 index 0000000000..f05af3e2c2 --- /dev/null +++ b/TheSkyBlessing/data/asset_manager/functions/artifact/triggers/use_item/use_item.m.mcfunction @@ -0,0 +1,8 @@ +#> asset_manager:artifact/triggers/use_item/use_item.m +# +# +# +# @input args id : int +# @within function asset_manager:artifact/triggers/use_item/use + +$function asset:artifact/alias/$(id)/use_item/