From 5c4f8b9da55cfb495d5f77d338de2a7d7fe131d8 Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Wed, 25 Mar 2026 04:12:17 +0000 Subject: [PATCH] feat(spark_pet): tame with personality foods; fix remaining "fish" IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wild dragons now show interaction prompts for each personality food — the food used to tame sets the starting trait immediately: - Raw Chicken → Relaxed trait - Raw Beef → Explorer trait - Cooked Salmon → Affectionate trait - Melon Slice → Playful trait - Bamboo → Independent trait Cod/salmon via minecraft:tameable (33% chance) still works as a fallback, resulting in the Relaxed trait. After taming, sneak+food still switches traits as before. Also fix remaining stale "fish" item IDs (pre-1.13) in: - behavior.tempt (wild and tamed groups) - minecraft:ageable feed_items - minecraft:healable items - minecraft:interact mood_boost entry Co-Authored-By: Claude Sonnet 4.6 --- addon/spark_pet_BP/entities/spark_dragon.json | 124 +++++++++++++++++- 1 file changed, 119 insertions(+), 5 deletions(-) diff --git a/addon/spark_pet_BP/entities/spark_dragon.json b/addon/spark_pet_BP/entities/spark_dragon.json index 156e991..ad43dce 100644 --- a/addon/spark_pet_BP/entities/spark_dragon.json +++ b/addon/spark_pet_BP/entities/spark_dragon.json @@ -49,7 +49,7 @@ "minecraft:behavior.tempt": { "priority": 3, "speed_multiplier": 0.5, - "items": ["fish", "salmon"], + "items": ["cod", "salmon"], "can_tempt_vertically": true }, "minecraft:behavior.avoid_mob_type": { @@ -67,6 +67,94 @@ "walk_speed_multiplier": 0.8 } ] + }, + "minecraft:interact": { + "interactions": [ + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "chicken" } + ] + }, + "event": "silverlabs:tame_as_relaxed", + "target": "self" + }, + "use_item": true, + "interact_text": "Tame: Relaxed (Raw Chicken)", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "beef" } + ] + }, + "event": "silverlabs:tame_as_explorer", + "target": "self" + }, + "use_item": true, + "interact_text": "Tame: Explorer (Raw Beef)", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "cooked_salmon" } + ] + }, + "event": "silverlabs:tame_as_affectionate", + "target": "self" + }, + "use_item": true, + "interact_text": "Tame: Affectionate (Cooked Salmon)", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "melon_slice" } + ] + }, + "event": "silverlabs:tame_as_playful", + "target": "self" + }, + "use_item": true, + "interact_text": "Tame: Playful (Melon Slice)", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { + "all_of": [ + { "test": "is_family", "subject": "other", "value": "player" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bamboo" } + ] + }, + "event": "silverlabs:tame_as_independent", + "target": "self" + }, + "use_item": true, + "interact_text": "Tame: Independent (Bamboo)", + "play_sounds": "random.eat" + }, + { + "on_interact": { + "filters": { "all_of": [{ "test": "is_family", "subject": "other", "value": "player" }] }, + "event": "", + "target": "self" + }, + "use_item": false, + "interact_text": "The dragon eyes you warily..." + } + ] } }, @@ -81,7 +169,7 @@ "minecraft:behavior.tempt": { "priority": 5, "speed_multiplier": 0.4, - "items": ["fish", "salmon"], + "items": ["cod", "salmon"], "can_tempt_vertically": true }, "minecraft:sittable": {}, @@ -380,7 +468,7 @@ "minecraft:is_baby": {}, "minecraft:ageable": { "duration": 1200, - "feed_items": ["fish", "salmon"], + "feed_items": ["cod", "salmon"], "grow_up": { "event": "silverlabs:grow_to_juvenile", "target": "self" @@ -738,7 +826,7 @@ }, "minecraft:healable": { "items": [ - { "item": "fish", "heal_amount": 4 }, + { "item": "cod", "heal_amount": 4 }, { "item": "salmon", "heal_amount": 6 } ] }, @@ -794,7 +882,7 @@ "filters": { "all_of": [ { "test": "is_family", "subject": "other", "value": "player" }, - { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "fish" }, + { "test": "has_equipment", "subject": "other", "domain": "hand", "value": "cod" }, { "test": "has_component", "value": "minecraft:is_tamed" } ] }, @@ -1385,6 +1473,32 @@ "set_property": { "silverlabs:firing": false } }, + "silverlabs:tame_as_relaxed": { + "remove": { "component_groups": ["silverlabs:wild"] }, + "add": { "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy", "silverlabs:trait_relaxed"] }, + "set_property": { "silverlabs:mood": 2, "silverlabs:trait": 0 } + }, + "silverlabs:tame_as_explorer": { + "remove": { "component_groups": ["silverlabs:wild"] }, + "add": { "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy", "silverlabs:trait_explorer"] }, + "set_property": { "silverlabs:mood": 2, "silverlabs:trait": 1 } + }, + "silverlabs:tame_as_affectionate": { + "remove": { "component_groups": ["silverlabs:wild"] }, + "add": { "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy", "silverlabs:trait_affectionate"] }, + "set_property": { "silverlabs:mood": 2, "silverlabs:trait": 2 } + }, + "silverlabs:tame_as_playful": { + "remove": { "component_groups": ["silverlabs:wild"] }, + "add": { "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy", "silverlabs:trait_playful"] }, + "set_property": { "silverlabs:mood": 2, "silverlabs:trait": 3 } + }, + "silverlabs:tame_as_independent": { + "remove": { "component_groups": ["silverlabs:wild"] }, + "add": { "component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy", "silverlabs:trait_independent"] }, + "set_property": { "silverlabs:mood": 2, "silverlabs:trait": 4 } + }, + "silverlabs:born_color_0": { "set_property": { "silverlabs:dragon_color": 0 } },