From 2f428002a87102af5e20640461f7e139b8a66e1a Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Thu, 11 Jun 2026 21:21:48 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=E7=A5=9E=E5=99=A8=E3=81=A8=E3=82=AA?= =?UTF-8?q?=E3=83=96=E3=82=B8=E3=82=A7=E3=82=AF=E3=83=88=E3=81=AE=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../give/1.trigger.mcfunction | 7 ++ .../give/2.give.mcfunction | 68 +++++++++++++++++++ .../trigger/1.trigger.mcfunction | 8 +++ .../trigger/2.check_condition.mcfunction | 12 ++++ .../trigger/3.main.mcfunction | 18 +++++ .../trigger/summon_object.mcfunction | 25 +++++++ .../detect_hit_block/.mcfunction | 8 +++ .../detect_hit_entity/.mcfunction | 8 +++ .../hit_block/.mcfunction | 11 +++ .../hit_block/invert.mcfunction | 18 +++++ .../1165.bubble_spreader/init/.mcfunction | 17 +++++ .../1165.bubble_spreader/kill/.mcfunction | 35 ++++++++++ .../range_over/.mcfunction | 10 +++ .../recursive/.mcfunction | 14 ++++ .../1165.bubble_spreader/register.mcfunction | 24 +++++++ .../1165.bubble_spreader/summon/.mcfunction | 11 +++ .../summon/debug.mcfunction | 10 +++ .../1165.bubble_spreader/summon/m.mcfunction | 9 +++ .../1165.bubble_spreader/tick/.mcfunction | 22 ++++++ .../alias/1165/detect_hit_block.mcfunction | 8 +++ .../alias/1165/detect_hit_entity.mcfunction | 8 +++ .../object/alias/1165/hit_block.mcfunction | 8 +++ .../object/alias/1165/init.mcfunction | 8 +++ .../object/alias/1165/kill.mcfunction | 8 +++ .../object/alias/1165/range_over.mcfunction | 8 +++ .../object/alias/1165/recursive.mcfunction | 8 +++ .../object/alias/1165/register.mcfunction | 8 +++ .../object/alias/1165/summon.mcfunction | 8 +++ .../object/alias/1165/tick.mcfunction | 8 +++ .../artifact/click.carrot_on_a_stick.json | 3 +- .../asset/tags/functions/artifact/give.json | 3 +- 31 files changed, 419 insertions(+), 2 deletions(-) create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/give/1.trigger.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/1.trigger.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/2.check_condition.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/3.main.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/summon_object.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_entity/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/register.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/summon/.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/summon/debug.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/detect_hit_block.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/detect_hit_entity.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/hit_block.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/init.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/kill.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/range_over.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/recursive.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/register.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/summon.mcfunction create mode 100644 Asset/data/asset/functions/object/alias/1165/tick.mcfunction diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/1.trigger.mcfunction new file mode 100644 index 0000000000..e3af4a8726 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1556.bubble_spreader/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1556} run function asset:artifact/1556.bubble_spreader/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction new file mode 100644 index 0000000000..76b582f643 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1556.bubble_spreader/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1556.bubble_spreader/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1556 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text":"バウンシーバブルスプレッダー","color":"#1290FF"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value ['[{"text":"正面に5つの水泡を生成する","color":"white"}]','[{"text":"水泡は低速だが高い追尾性能を持つ","color":"white"}]','[{"text":"また、水泡は生成後しばらくの間、壁を反射する","color":"white"}]'] +# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) + # data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}' + # data modify storage asset:artifact ConsumeItem.Count set value 1 + # data modify storage asset:artifact ConsumeItem.Extra set value +# 使用回数 (int) (オプション) + # data modify storage asset:artifact RemainingCount set value +# 神器を発動できるスロット (string) Wikiを参照 + data modify storage asset:artifact Slot set value "mainhand" +# 神器のトリガー (string) Wikiを参照 + data modify storage asset:artifact Trigger set value "onClick" +# 神器の発動条件 (TextComponentString) (オプション) + # data modify storage asset:artifact Condition set value +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [150x5] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Magic] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Water] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "never" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.AttackRange set value +# MP消費量 (int) + # data modify storage asset:artifact MPCost set value +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + data modify storage asset:artifact MPHealWhenHit set value 10 +# 神器のクールダウン (int) (オプション) + data modify storage asset:artifact LocalCooldown set value 85 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + data modify storage asset:artifact TypeCooldown.Type set value "longRange" + data modify storage asset:artifact TypeCooldown.Duration set value 55 +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value ["Flora","Wi-ki","Rumor"] +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..11697759ee --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1556.bubble_spreader/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{mainhand:1556} run function asset:artifact/1556.bubble_spreader/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..50157b7abe --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/2.check_condition.mcfunction @@ -0,0 +1,12 @@ +#> asset:artifact/1556.bubble_spreader/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1556.bubble_spreader/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1556.bubble_spreader/trigger/3.main \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/3.main.mcfunction new file mode 100644 index 0000000000..252e384e14 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/3.main.mcfunction @@ -0,0 +1,18 @@ +#> asset:artifact/1556.bubble_spreader/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1556.bubble_spreader/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# 演出 + playsound block.conduit.activate player @a ~ ~ ~ 0.7 1.5 0 + +# 弾を5回召喚する + execute anchored eyes positioned ^ ^-0.35 ^0.3 rotated ~ ~-5 run function asset:artifact/1556.bubble_spreader/trigger/summon_object + execute anchored eyes positioned ^ ^-0.35 ^0.3 rotated ~ ~-5 run function asset:artifact/1556.bubble_spreader/trigger/summon_object + execute anchored eyes positioned ^ ^-0.35 ^0.3 rotated ~ ~-5 run function asset:artifact/1556.bubble_spreader/trigger/summon_object + execute anchored eyes positioned ^ ^-0.35 ^0.3 rotated ~ ~-5 run function asset:artifact/1556.bubble_spreader/trigger/summon_object + execute anchored eyes positioned ^ ^-0.35 ^0.3 rotated ~ ~-5 run function asset:artifact/1556.bubble_spreader/trigger/summon_object diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/summon_object.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/summon_object.mcfunction new file mode 100644 index 0000000000..73ecdae68d --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/trigger/summon_object.mcfunction @@ -0,0 +1,25 @@ +#> asset:artifact/1556.bubble_spreader/trigger/summon_object +# +# +# +# @within function asset:artifact/1556.bubble_spreader/trigger/3.main + +#> Private +# @private + #declare tag SpreadMarker + +# 前方拡散 + summon marker ~ ~ ~ {Tags:["SpreadMarker"]} + data modify storage lib: Argument.Distance set value 2.5 + data modify storage lib: Argument.Spread set value 3.0 + execute as @e[type=marker,tag=SpreadMarker,distance=..0.01,limit=1] run function lib:forward_spreader/circle + +# 弾を召喚 + data modify storage api: Argument.ID set value 1165 + data modify storage api: Argument.FieldOverride.Damage set value 150f + data modify storage api: Argument.FieldOverride.AdditionalMPHeal set from storage api: PersistentArgument.AdditionalMPHeal + execute store result storage api: Argument.FieldOverride.UserID int 1 run scoreboard players get @s UserID + execute facing entity @e[type=marker,tag=SpreadMarker,distance=..10,limit=1] feet run function api:object/summon + +# リセット + kill @e[type=marker,tag=SpreadMarker,distance=..10] diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction new file mode 100644 index 0000000000..2fff42b995 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1165.bubble_spreader/detect_hit_block/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/detect_hit_block + +# 判定 + execute unless block ^ ^ ^0.5 #lib:no_collision/ run data modify storage asset:context IsHitBlock set value true diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_entity/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_entity/.mcfunction new file mode 100644 index 0000000000..6d8d201894 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_entity/.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/1165.bubble_spreader/detect_hit_entity/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/detect_hit_entity + +# ヒット検知 + execute if score @s General.Object.Tick matches 16.. positioned ~-0.5 ~-0.5 ~-0.5 if entity @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0] run data modify storage asset:context IsHitEntity set value true diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction new file mode 100644 index 0000000000..ede154f7b5 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1165.bubble_spreader/hit_block/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/hit_block + +# General.Object.Tickによって挙動を変える +# ..16 床に当たった時のみ反射 +# 17.. 消滅 + execute if block ~ ~-0.01 ~ #lib:no_collision/ if score @s General.Object.Tick matches ..15 run function asset:object/1165.bubble_spreader/hit_block/invert + execute if score @s General.Object.Tick matches 16.. run function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction new file mode 100644 index 0000000000..f96319c64d --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction @@ -0,0 +1,18 @@ +#> asset:object/1165.bubble_spreader/hit_block/invert +# +# Objectが絶対に上を向くように +# +# @within asset:object/1165.bubble_spreader/hit_block/ + + +# 1. 計算用に「-1」をスコアボード(Temporary)に用意しておく + scoreboard players set $-1 Temporary -1 + +# 2. 現在の上下の角度(Pitch: Rotationの2番目)を、小数を維持するため1000倍して取得する + execute store result score $pitch Temporary run data get entity @s Rotation[1] 1000 + +# 3. もし下を向いている(スコアがプラス)なら、-1を掛けてマイナス(上向き)に反転させる + execute if score $pitch Temporary matches 1.. run scoreboard players operation $pitch Temporary *= $-1 Temporary + +# 4. 反転させた数値を0.001倍して元のサイズに戻し、エンティティのPitchに上書きする + execute store result entity @s Rotation[1] float 0.001 run scoreboard players get $pitch Temporary diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction new file mode 100644 index 0000000000..c9baedeee2 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction @@ -0,0 +1,17 @@ +#> asset:object/1165.bubble_spreader/init/ +# +# Objectのinit時の処理 +# +# @within asset:object/alias/1165/init + + + +# -2..2の範囲でtickを変える + execute store result score @s General.Object.Tick run random value -5..2 + +# MovePerStepの値を別フィールドへ保存 +# MovePerStepが0にある場合があり、それを復元するため + data modify storage asset:context this.SavedMPS set from storage asset:context this.MovePerStep + +# super.init + function asset:object/super.init diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction new file mode 100644 index 0000000000..32891007cd --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction @@ -0,0 +1,35 @@ +#> asset:object/1165.bubble_spreader/kill/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/kill + +#> Private +# @private + #declare score_holder $UserID + +# 弾ける無数の泡(空気中でも綺麗に弾けるbubble_popを使用) + particle minecraft:bubble_pop ~ ~ ~ 0.8 0.8 0.8 0.1 90 normal @a +# 泡を包み込む水色のオーラ(バグっていた数値を綺麗なクリアブルーに修正) + particle minecraft:dust_color_transition 0.18 0.45 0.78 1.5 1.0 1.0 1.0 ~ ~ ~ 0.5 0.5 0.5 0 3 normal @a +# ポコポコと弾ける泡の音(ピッチを高めにして可愛らしい魔法の泡を演出) + playsound minecraft:block.bubble_column.bubble_pop neutral @a ~ ~ ~ 0.5 1.5 0 + playsound minecraft:block.bubble_column.bubble_pop neutral @a ~ ~ ~ 0.5 2.0 0 +# 弾けた時の水しぶきの音 + playsound minecraft:entity.player.splash neutral @a ~ ~ ~ 0.4 2.0 0 + +# ダメージ + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "Water" + data modify storage api: Argument.AdditionalMPHeal set from storage asset:context this.AdditionalMPHeal + execute store result score $UserID Temporary run data get storage asset:context this.UserID + execute as @a if score @s UserID = $UserID Temporary run function api:damage/modifier + execute positioned ~-0.5 ~-0.5 ~-0.5 as @e[type=#lib:living_without_player,tag=!Uninterferable,dx=0,limit=1] run function api:damage/ + function api:damage/reset + +# リセット + scoreboard players reset $UserID Temporary + +# 消滅 + kill @s diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction new file mode 100644 index 0000000000..d0fc7ae777 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1165.bubble_spreader/range_over/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/range_over + +# killメソッドを呼び出さずそのまま消滅 + #kill @s + + function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction new file mode 100644 index 0000000000..24b8bd1b4b --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction @@ -0,0 +1,14 @@ +#> asset:object/1165.bubble_spreader/recursive/ +# +# 継承先などから実行される処理 +# +# @within asset:object/alias/1165/recursive + +# 演出 +# 水色の芯を描きつつ、その周囲に少しだけ泡を散らす + particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ~ ~ ~ 0 0 0 0 1 + #particle minecraft:dust 0.4 0.8 1.0 1.0 ~ ~ ~ 0 0 0 0 1 + particle minecraft:bubble_pop ~ ~ ~ 0.1 0.1 0.1 0 1 + #particle minecraft:dust 0.4 0.8 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 + particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 + particle minecraft:bubble_pop ^ ^ ^0.25 0.1 0.1 0.1 0 1 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/register.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/register.mcfunction new file mode 100644 index 0000000000..4eaa32d32d --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/register.mcfunction @@ -0,0 +1,24 @@ +#> asset:object/1165.bubble_spreader/register +# +# Objectのデータを指定 +# +# @within function asset:object/alias/1165/register + +# 継承(オプション) + data modify storage asset:object Extends append value 1 + function asset:object/extends +# 他のObjectに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:object ExtendsSafe set value +# 継承されることを前提とした、抽象的なObjectであるかどうか(boolean) + data modify storage asset:object IsAbstract set value false +# Tickするかどうか(boolean) (オプション) + # data modify storage asset:object IsTicking set value + +# ID (int) + data modify storage asset:object ID set value 1165 +# フィールド(オプション) + data modify storage asset:object Field.Speed set value 1 + data modify storage asset:object Field.Range set value 65 + data modify storage asset:object Field.MovePerStep set value 0.3 + data modify storage asset:object Field.Damage set value 1 + data modify storage asset:object Field.UserID set value -1 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/.mcfunction new file mode 100644 index 0000000000..c7101094a3 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1165.bubble_spreader/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:object/alias/1165/summon + +# 元となるEntityを召喚する + execute as 0-0-0-0-0 in minecraft:overworld positioned as @s run tp @s ~ ~ ~ ~ ~ + data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation + function asset:object/1165.bubble_spreader/summon/m with storage asset:temp Args + data remove storage asset:temp Args diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/debug.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/debug.mcfunction new file mode 100644 index 0000000000..76e66e6079 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/debug.mcfunction @@ -0,0 +1,10 @@ +#> asset:object/1165.bubble_spreader/summon/debug +# +# 動作チェック用の召喚処理 使い終わったら消してもいいかも +# +# @user +# @private + +# 召喚 + data modify storage api: Argument.ID set value 1165 + function api:object/summon \ No newline at end of file diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction new file mode 100644 index 0000000000..c0c52366a3 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction @@ -0,0 +1,9 @@ +#> asset:object/1165.bubble_spreader/summon/m +# +# マクロで召喚する +# +# @input args: +# Rotation : +# @within function asset:object/1165.bubble_spreader/summon/ + + $summon item_display ~ ~ ~ {Tags:["ObjectInit"],Rotation:$(Rotation),item:{id:"minecraft:light_blue_stained_glass",Count:1b},transformation:{translation:[0f,0f,0f],scale:[0.3f,0.3f,0.3f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]},teleport_duration:1} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction new file mode 100644 index 0000000000..42a1500fe2 --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction @@ -0,0 +1,22 @@ +#> asset:object/1165.bubble_spreader/tick/ +# +# Objectのtick時の処理 +# +# @within asset:object/alias/1165/tick + +# Tick加算 + scoreboard players add @s General.Object.Tick 1 + +# MovePerStepが0なら元に戻しておく + execute if data storage asset:context this{MovePerStep:0} run data modify storage asset:context this.MovePerStep set from storage asset:context this.SavedMPS + +# ..15の時、前方にブロックがあればMovePerStepを0に +# 飛翔体抽象の実装の都合上、hit_blockメソッドでMovePerStepを0にしても進んでいってしまうため? + #execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^0.5 #lib:no_collision/ run scoreboard players set $Speed Lib 1 + execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^0.5 #lib:no_collision/ run data modify storage asset:context this.MovePerStep set value 0 + +# 16..の時、常時追尾 + execute if score @s General.Object.Tick matches 16.. run tp @s ~ ~ ~ facing entity @e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..20,sort=nearest,limit=1] eyes + +# super.tick + function asset:object/super.tick diff --git a/Asset/data/asset/functions/object/alias/1165/detect_hit_block.mcfunction b/Asset/data/asset/functions/object/alias/1165/detect_hit_block.mcfunction new file mode 100644 index 0000000000..3ad2074eb6 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/detect_hit_block.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/detect_hit_block +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/detect_hit_block/ diff --git a/Asset/data/asset/functions/object/alias/1165/detect_hit_entity.mcfunction b/Asset/data/asset/functions/object/alias/1165/detect_hit_entity.mcfunction new file mode 100644 index 0000000000..415252e8a6 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/detect_hit_entity.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/detect_hit_entity +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/detect_hit_entity/ diff --git a/Asset/data/asset/functions/object/alias/1165/hit_block.mcfunction b/Asset/data/asset/functions/object/alias/1165/hit_block.mcfunction new file mode 100644 index 0000000000..a51550348e --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/hit_block.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/hit_block +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/hit_block/ diff --git a/Asset/data/asset/functions/object/alias/1165/init.mcfunction b/Asset/data/asset/functions/object/alias/1165/init.mcfunction new file mode 100644 index 0000000000..ccb9aaedcc --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/init.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/init +# +# Init処理のエイリアス +# +# @within asset_manager:object/init/init.m + +# 元のInit処理を呼び出す + function asset:object/1165.bubble_spreader/init/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1165/kill.mcfunction b/Asset/data/asset/functions/object/alias/1165/kill.mcfunction new file mode 100644 index 0000000000..d305840a7f --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/kill.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/kill +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/kill/ diff --git a/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction b/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction new file mode 100644 index 0000000000..346ca22a16 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/range_over +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/range_over/ diff --git a/Asset/data/asset/functions/object/alias/1165/recursive.mcfunction b/Asset/data/asset/functions/object/alias/1165/recursive.mcfunction new file mode 100644 index 0000000000..07b9d28f32 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/recursive.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165recursive +# +# メソッド処理のエイリアス +# +# @within asset_manager:object/call_method/run_method.m + +# 元のメソッド処理を呼び出す + function asset:object/1165.bubble_spreader/recursive/ diff --git a/Asset/data/asset/functions/object/alias/1165/register.mcfunction b/Asset/data/asset/functions/object/alias/1165/register.mcfunction new file mode 100644 index 0000000000..94bec49d66 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/register +# +# Objectのデータ指定処理のエイリアス +# +# @within asset_manager:object/summon/register.m + +# 元の登録処理を呼び出す + function asset:object/1165.bubble_spreader/register \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1165/summon.mcfunction b/Asset/data/asset/functions/object/alias/1165/summon.mcfunction new file mode 100644 index 0000000000..6de79e5f39 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/summon +# +# Object召喚処理のエイリアス +# +# @within asset_manager:object/summon/summon.m + +# 元の召喚処理を呼び出す + function asset:object/1165.bubble_spreader/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/object/alias/1165/tick.mcfunction b/Asset/data/asset/functions/object/alias/1165/tick.mcfunction new file mode 100644 index 0000000000..91f5a85736 --- /dev/null +++ b/Asset/data/asset/functions/object/alias/1165/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:object/alias/1165/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:object/tick/tick.m + +# 元のTick処理を呼び出す + function asset:object/1165.bubble_spreader/tick/ \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json index 8b0fecd8b5..d1adb9a6bf 100644 --- a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json +++ b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1556.bubble_spreader/trigger/1.trigger", "asset:artifact/1332.bebebeam/trigger/1.trigger", "asset:artifact/1306.will_o_wisp/trigger/1.trigger", "asset:artifact/1144.cradle_of_azure_moon/trigger/1.trigger", @@ -177,4 +178,4 @@ "asset:artifact/2001.staff_of_the_willless/trigger/1.trigger", "asset:artifact/0019.scripture/trigger/1.trigger" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/give.json b/Asset/data/asset/tags/functions/artifact/give.json index f8f86c672d..be9fde86d2 100644 --- a/Asset/data/asset/tags/functions/artifact/give.json +++ b/Asset/data/asset/tags/functions/artifact/give.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1556.bubble_spreader/give/1.trigger", "asset:artifact/1409.mana_charm/give/1.trigger", "asset:artifact/1327.lunatic_torch/give/1.trigger", "asset:artifact/1332.bebebeam/give/1.trigger", @@ -533,4 +534,4 @@ "asset:artifact/0735.collision_plate/give/1.trigger", "asset:artifact/0745.blade_of_whirlwind/give/1.trigger" ] -} +} \ No newline at end of file From 7fd2b26a23cde03a8530fc85a35c38ac4a4810d6 Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Fri, 12 Jun 2026 00:45:26 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E7=AE=87=E6=89=80?= =?UTF-8?q?=E3=81=AE=E5=89=8A=E9=99=A4=E3=81=AA=E3=81=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/1556.bubble_spreader/give/2.give.mcfunction | 2 +- .../object/1165.bubble_spreader/hit_block/.mcfunction | 4 ++-- .../1165.bubble_spreader/hit_block/invert.mcfunction | 2 +- .../functions/object/1165.bubble_spreader/init/.mcfunction | 2 +- .../functions/object/1165.bubble_spreader/kill/.mcfunction | 6 +++--- .../object/1165.bubble_spreader/range_over/.mcfunction | 3 +-- .../object/1165.bubble_spreader/recursive/.mcfunction | 7 ++----- .../object/1165.bubble_spreader/summon/m.mcfunction | 2 +- .../functions/object/1165.bubble_spreader/tick/.mcfunction | 1 - 9 files changed, 12 insertions(+), 17 deletions(-) diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction index 76b582f643..5258b1e798 100644 --- a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction @@ -13,7 +13,7 @@ # 神器のベースアイテム data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" # 神器の名前 (TextComponentString) - data modify storage asset:artifact Name set value '{"text":"バウンシーバブルスプレッダー","color":"#1290FF"}' + data modify storage asset:artifact Name set value '{"text":"バブルスプレッダー","color":"#1290FF"}' # 神器の説明文 (TextComponentString[]) data modify storage asset:artifact Lore set value ['[{"text":"正面に5つの水泡を生成する","color":"white"}]','[{"text":"水泡は低速だが高い追尾性能を持つ","color":"white"}]','[{"text":"また、水泡は生成後しばらくの間、壁を反射する","color":"white"}]'] # 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction index ede154f7b5..50e4f76139 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction @@ -5,7 +5,7 @@ # @within asset:object/alias/1165/hit_block # General.Object.Tickによって挙動を変える -# ..16 床に当たった時のみ反射 -# 17.. 消滅 +# ..15 床に当たった時のみ反射(地面に当たりまくるため) +# 16.. 消滅 execute if block ~ ~-0.01 ~ #lib:no_collision/ if score @s General.Object.Tick matches ..15 run function asset:object/1165.bubble_spreader/hit_block/invert execute if score @s General.Object.Tick matches 16.. run function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction index f96319c64d..7f83270cd7 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction @@ -1,6 +1,6 @@ #> asset:object/1165.bubble_spreader/hit_block/invert # -# Objectが絶対に上を向くように +# Objectが上を向くように # # @within asset:object/1165.bubble_spreader/hit_block/ diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction index c9baedeee2..253961e9f8 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction @@ -6,7 +6,7 @@ -# -2..2の範囲でtickを変える +# -5..2の範囲でtickを変える execute store result score @s General.Object.Tick run random value -5..2 # MovePerStepの値を別フィールドへ保存 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction index 32891007cd..1bf6b28243 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/kill/.mcfunction @@ -8,11 +8,11 @@ # @private #declare score_holder $UserID -# 弾ける無数の泡(空気中でも綺麗に弾けるbubble_popを使用) +# 弾ける無数の泡 particle minecraft:bubble_pop ~ ~ ~ 0.8 0.8 0.8 0.1 90 normal @a -# 泡を包み込む水色のオーラ(バグっていた数値を綺麗なクリアブルーに修正) +# 泡を包み込む水色のオーラ particle minecraft:dust_color_transition 0.18 0.45 0.78 1.5 1.0 1.0 1.0 ~ ~ ~ 0.5 0.5 0.5 0 3 normal @a -# ポコポコと弾ける泡の音(ピッチを高めにして可愛らしい魔法の泡を演出) +# ポコポコと弾ける泡の音 playsound minecraft:block.bubble_column.bubble_pop neutral @a ~ ~ ~ 0.5 1.5 0 playsound minecraft:block.bubble_column.bubble_pop neutral @a ~ ~ ~ 0.5 2.0 0 # 弾けた時の水しぶきの音 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction index d0fc7ae777..4f0a3d2139 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction @@ -4,7 +4,6 @@ # # @within asset:object/alias/1165/range_over -# killメソッドを呼び出さずそのまま消滅 - #kill @s +# killメソッド function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction index 24b8bd1b4b..5c6b33aab0 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction @@ -5,10 +5,7 @@ # @within asset:object/alias/1165/recursive # 演出 -# 水色の芯を描きつつ、その周囲に少しだけ泡を散らす particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ~ ~ ~ 0 0 0 0 1 - #particle minecraft:dust 0.4 0.8 1.0 1.0 ~ ~ ~ 0 0 0 0 1 - particle minecraft:bubble_pop ~ ~ ~ 0.1 0.1 0.1 0 1 - #particle minecraft:dust 0.4 0.8 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 + #particle minecraft:bubble_pop ~ ~ ~ 0.1 0.1 0.1 0 1 particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 - particle minecraft:bubble_pop ^ ^ ^0.25 0.1 0.1 0.1 0 1 + #particle minecraft:bubble_pop ^ ^ ^0.25 0.1 0.1 0.1 0 1 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction index c0c52366a3..eef293f7ac 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction @@ -5,5 +5,5 @@ # @input args: # Rotation : # @within function asset:object/1165.bubble_spreader/summon/ - +# 見た目は仮(泡のテクスチャ作ってもらう予定) $summon item_display ~ ~ ~ {Tags:["ObjectInit"],Rotation:$(Rotation),item:{id:"minecraft:light_blue_stained_glass",Count:1b},transformation:{translation:[0f,0f,0f],scale:[0.3f,0.3f,0.3f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]},teleport_duration:1} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction index 42a1500fe2..0755d21da1 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction @@ -12,7 +12,6 @@ # ..15の時、前方にブロックがあればMovePerStepを0に # 飛翔体抽象の実装の都合上、hit_blockメソッドでMovePerStepを0にしても進んでいってしまうため? - #execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^0.5 #lib:no_collision/ run scoreboard players set $Speed Lib 1 execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^0.5 #lib:no_collision/ run data modify storage asset:context this.MovePerStep set value 0 # 16..の時、常時追尾 From 365c7b1e911234b6403ec21bf169bd284450386c Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Fri, 12 Jun 2026 08:43:45 +0900 Subject: [PATCH 3/7] =?UTF-8?q?invert.mcfunction=20=E3=82=92=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E3=80=81=E3=82=B9=E3=82=B3=E3=82=A2=E3=83=AA=E3=82=BB?= =?UTF-8?q?=E3=83=83=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../object/1165.bubble_spreader/hit_block/invert.mcfunction | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction index 7f83270cd7..0bcaa2a3f3 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction @@ -16,3 +16,5 @@ # 4. 反転させた数値を0.001倍して元のサイズに戻し、エンティティのPitchに上書きする execute store result entity @s Rotation[1] float 0.001 run scoreboard players get $pitch Temporary +# スコアリセット + scoreboard player reset * Temporary From 7715c95f32db53e3399dbf87ae24b7b5985cda1d Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Fri, 12 Jun 2026 08:48:28 +0900 Subject: [PATCH 4/7] =?UTF-8?q?invert.mcfunction=20=E3=81=AE=E8=AA=A4?= =?UTF-8?q?=E5=AD=97=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../object/1165.bubble_spreader/hit_block/invert.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction index 0bcaa2a3f3..e7b4c7cb11 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction @@ -17,4 +17,4 @@ # 4. 反転させた数値を0.001倍して元のサイズに戻し、エンティティのPitchに上書きする execute store result entity @s Rotation[1] float 0.001 run scoreboard players get $pitch Temporary # スコアリセット - scoreboard player reset * Temporary + scoreboard players reset * Temporary From 324371d40f7a2ac089b1ba06b6a022b15cd77fd9 Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Sun, 14 Jun 2026 17:48:17 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=E3=83=91=E3=83=BC=E3=83=86=E3=82=A3?= =?UTF-8?q?=E3=82=AF=E3=83=AB=E3=81=AE=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../object/1165.bubble_spreader/recursive/.mcfunction | 5 +++-- .../object/1165.bubble_spreader/summon/m.mcfunction | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction index 5c6b33aab0..208bbf25bb 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction @@ -5,7 +5,8 @@ # @within asset:object/alias/1165/recursive # 演出 - particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ~ ~ ~ 0 0 0 0 1 + particle minecraft:dust_color_transition 0.18 0.25 0.58 1 1.0 1.0 1.0 ~ ~ ~ 0 0 0 0 1 + particle minecraft:crit ~ ~ ~ 0 0 0 0 1 #particle minecraft:bubble_pop ~ ~ ~ 0.1 0.1 0.1 0 1 - particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 + #particle minecraft:dust_color_transition 0.18 0.45 0.78 1 1.0 1.0 1.0 ^ ^ ^0.25 0 0 0 0 1 #particle minecraft:bubble_pop ^ ^ ^0.25 0.1 0.1 0.1 0 1 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction index eef293f7ac..49fe051026 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/summon/m.mcfunction @@ -6,4 +6,4 @@ # Rotation : # @within function asset:object/1165.bubble_spreader/summon/ # 見た目は仮(泡のテクスチャ作ってもらう予定) - $summon item_display ~ ~ ~ {Tags:["ObjectInit"],Rotation:$(Rotation),item:{id:"minecraft:light_blue_stained_glass",Count:1b},transformation:{translation:[0f,0f,0f],scale:[0.3f,0.3f,0.3f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]},teleport_duration:1} + $summon item_display ~ ~ ~ {Tags:["ObjectInit"],Rotation:$(Rotation),item:{id:"minecraft:glass",Count:1b},transformation:{translation:[0f,0f,0f],scale:[0.5f,0.5f,0.5f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f]},teleport_duration:1} From d79bdb0f7d838467101c806c3fcff29a75bc096e Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Sun, 14 Jun 2026 18:44:57 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=E6=8C=87=E6=91=98=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=81=A8=E5=A3=81=E5=8F=8D=E5=B0=84=E3=81=AE?= =?UTF-8?q?=E5=BC=B7=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../give/2.give.mcfunction | 2 +- .../detect_hit_block/.mcfunction | 3 ++- .../1165.bubble_spreader/hit_block/.mcfunction | 4 ++-- .../hit_block/invert.mcfunction | 18 ------------------ .../hit_block/reflect.mcfunction | 11 +++++++++++ .../1165.bubble_spreader/init/.mcfunction | 6 ------ .../range_over/.mcfunction | 9 --------- .../1165.bubble_spreader/recursive/.mcfunction | 2 ++ .../1165.bubble_spreader/tick/.mcfunction | 7 ------- .../object/alias/1165/range_over.mcfunction | 8 -------- 10 files changed, 18 insertions(+), 52 deletions(-) delete mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction create mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/reflect.mcfunction delete mode 100644 Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction delete mode 100644 Asset/data/asset/functions/object/alias/1165/range_over.mcfunction diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction index 5258b1e798..76b582f643 100644 --- a/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/give/2.give.mcfunction @@ -13,7 +13,7 @@ # 神器のベースアイテム data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" # 神器の名前 (TextComponentString) - data modify storage asset:artifact Name set value '{"text":"バブルスプレッダー","color":"#1290FF"}' + data modify storage asset:artifact Name set value '{"text":"バウンシーバブルスプレッダー","color":"#1290FF"}' # 神器の説明文 (TextComponentString[]) data modify storage asset:artifact Lore set value ['[{"text":"正面に5つの水泡を生成する","color":"white"}]','[{"text":"水泡は低速だが高い追尾性能を持つ","color":"white"}]','[{"text":"また、水泡は生成後しばらくの間、壁を反射する","color":"white"}]'] # 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction index 2fff42b995..4b92ac0da0 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/detect_hit_block/.mcfunction @@ -4,5 +4,6 @@ # # @within asset:object/alias/1165/detect_hit_block -# 判定 +# 判定(片方は反射用) execute unless block ^ ^ ^0.5 #lib:no_collision/ run data modify storage asset:context IsHitBlock set value true + execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^1.0 #lib:no_collision/ run data modify storage asset:context IsHitBlock set value true diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction index 50e4f76139..8b2d77bd09 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/.mcfunction @@ -5,7 +5,7 @@ # @within asset:object/alias/1165/hit_block # General.Object.Tickによって挙動を変える -# ..15 床に当たった時のみ反射(地面に当たりまくるため) +# ..15 反射 + execute if score @s General.Object.Tick matches ..15 run function asset:object/1165.bubble_spreader/hit_block/reflect # 16.. 消滅 - execute if block ~ ~-0.01 ~ #lib:no_collision/ if score @s General.Object.Tick matches ..15 run function asset:object/1165.bubble_spreader/hit_block/invert execute if score @s General.Object.Tick matches 16.. run function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction deleted file mode 100644 index 7f83270cd7..0000000000 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/invert.mcfunction +++ /dev/null @@ -1,18 +0,0 @@ -#> asset:object/1165.bubble_spreader/hit_block/invert -# -# Objectが上を向くように -# -# @within asset:object/1165.bubble_spreader/hit_block/ - - -# 1. 計算用に「-1」をスコアボード(Temporary)に用意しておく - scoreboard players set $-1 Temporary -1 - -# 2. 現在の上下の角度(Pitch: Rotationの2番目)を、小数を維持するため1000倍して取得する - execute store result score $pitch Temporary run data get entity @s Rotation[1] 1000 - -# 3. もし下を向いている(スコアがプラス)なら、-1を掛けてマイナス(上向き)に反転させる - execute if score $pitch Temporary matches 1.. run scoreboard players operation $pitch Temporary *= $-1 Temporary - -# 4. 反転させた数値を0.001倍して元のサイズに戻し、エンティティのPitchに上書きする - execute store result entity @s Rotation[1] float 0.001 run scoreboard players get $pitch Temporary diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/reflect.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/reflect.mcfunction new file mode 100644 index 0000000000..b48004964c --- /dev/null +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/hit_block/reflect.mcfunction @@ -0,0 +1,11 @@ +#> asset:object/1165.bubble_spreader/hit_block/reflect +# +# 継承先などから実行される処理 +# +# @within asset:object/1165.bubble_spreader/hit_block/ + +# 実行者を反射軌道で0.1m前進 +# 反射距離を何ブロック先が埋まってるかで調整する + execute unless block ^ ^ ^1.0 #lib:no_collision/ run scoreboard players set $Speed Lib 10 + execute unless block ^ ^ ^0.5 #lib:no_collision/ run scoreboard players set $Speed Lib 5 + function lib:reflection_bullet/ diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction index 253961e9f8..a015d92d1f 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/init/.mcfunction @@ -4,14 +4,8 @@ # # @within asset:object/alias/1165/init - - # -5..2の範囲でtickを変える execute store result score @s General.Object.Tick run random value -5..2 -# MovePerStepの値を別フィールドへ保存 -# MovePerStepが0にある場合があり、それを復元するため - data modify storage asset:context this.SavedMPS set from storage asset:context this.MovePerStep - # super.init function asset:object/super.init diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction deleted file mode 100644 index 4f0a3d2139..0000000000 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/range_over/.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -#> asset:object/1165.bubble_spreader/range_over/ -# -# 継承先などから実行される処理 -# -# @within asset:object/alias/1165/range_over - -# killメソッド - - function asset:object/call.m {method:kill} diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction index 208bbf25bb..f109625bfc 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/recursive/.mcfunction @@ -4,6 +4,8 @@ # # @within asset:object/alias/1165/recursive +# 何らかの理由で埋まってたらキルメソッド + execute unless block ~ ~ ~ #lib:no_collision/ unless block ^ ^ ^-0.5 #lib:no_collision/ run return run function asset:object/call.m {method:kill} # 演出 particle minecraft:dust_color_transition 0.18 0.25 0.58 1 1.0 1.0 1.0 ~ ~ ~ 0 0 0 0 1 particle minecraft:crit ~ ~ ~ 0 0 0 0 1 diff --git a/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction index 0755d21da1..3fdae2eace 100644 --- a/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction +++ b/Asset/data/asset/functions/object/1165.bubble_spreader/tick/.mcfunction @@ -7,13 +7,6 @@ # Tick加算 scoreboard players add @s General.Object.Tick 1 -# MovePerStepが0なら元に戻しておく - execute if data storage asset:context this{MovePerStep:0} run data modify storage asset:context this.MovePerStep set from storage asset:context this.SavedMPS - -# ..15の時、前方にブロックがあればMovePerStepを0に -# 飛翔体抽象の実装の都合上、hit_blockメソッドでMovePerStepを0にしても進んでいってしまうため? - execute if score @s General.Object.Tick matches ..15 unless block ^ ^ ^0.5 #lib:no_collision/ run data modify storage asset:context this.MovePerStep set value 0 - # 16..の時、常時追尾 execute if score @s General.Object.Tick matches 16.. run tp @s ~ ~ ~ facing entity @e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..20,sort=nearest,limit=1] eyes diff --git a/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction b/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction deleted file mode 100644 index 346ca22a16..0000000000 --- a/Asset/data/asset/functions/object/alias/1165/range_over.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#> asset:object/alias/1165/range_over -# -# メソッド処理のエイリアス -# -# @within asset_manager:object/call_method/run_method.m - -# 元のメソッド処理を呼び出す - function asset:object/1165.bubble_spreader/range_over/ From 2e8ab18efff2866b166f50a37cc47558006509b9 Mon Sep 17 00:00:00 2001 From: ogachu0331 Date: Fri, 19 Jun 2026 18:42:59 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E6=A9=9F(lv4red)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/1556.bubble_spreader/register.mcfunction | 8 ++++++++ Asset/data/asset/tags/functions/artifact/register.json | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 Asset/data/asset/functions/artifact/1556.bubble_spreader/register.mcfunction diff --git a/Asset/data/asset/functions/artifact/1556.bubble_spreader/register.mcfunction b/Asset/data/asset/functions/artifact/1556.bubble_spreader/register.mcfunction new file mode 100644 index 0000000000..58aca53629 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1556.bubble_spreader/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1556.bubble_spreader/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[4] append value [1556] +data modify storage asset:artifact RarityRegistryWithColor.Red[4] append value [1556] diff --git a/Asset/data/asset/tags/functions/artifact/register.json b/Asset/data/asset/tags/functions/artifact/register.json index c302470223..508d3a39d6 100644 --- a/Asset/data/asset/tags/functions/artifact/register.json +++ b/Asset/data/asset/tags/functions/artifact/register.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1556.bubble_spreader/register", "asset:artifact/1365.shaved_ice_blue_hawaii/register", "asset:artifact/1366.shaved_ice_melon/register", "asset:artifact/1364.shaved_ice_strawberry/register", @@ -314,4 +315,4 @@ "asset:artifact/1027.fire_of_rebirth/register", "asset:artifact/1111.rod_o_redeem/register" ] -} +} \ No newline at end of file