fix(heyhe): correct egg spawn, fix taming, skinny model, wonky eyes, persistent
All checks were successful
Deploy Addons / deploy (push) Successful in 14s

- heyhe_egg: rebuild spawn mechanism with component groups (spawn_entity/die
  can't live in event sequences — follow dragon_egg pattern exactly)
- heyhe_chicken: move interact to base components so taming always works
  regardless of spawn method; add persistent to stop vanishing
- Geometry: skinny tall body, thin neck, proper UV coordinates throughout
- Texture: fill whole atlas white first (no dark gaps), matched UV regions,
  wonky asymmetric eyes (one big+high, one small+low)
- Animation: neck peck 3x per cycle at 22deg, body sway on walk, wing flutter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-05 09:37:25 +01:00
parent 56ed7d76ee
commit 86950012e9
5 changed files with 307 additions and 286 deletions

View File

@@ -22,76 +22,7 @@
"component_groups": {
"silverlabs:wild": {
"minecraft:behavior.tempt": {
"priority": 3,
"speed_multiplier": 0.6,
"items": ["wheat", "wheat_seeds", "beetroot_seeds", "melon_seeds", "pumpkin_seeds"],
"can_tempt_vertically": false
},
"minecraft:behavior.avoid_mob_type": {
"priority": 4,
"max_dist": 8,
"walk_speed_multiplier": 1.2,
"sprint_speed_multiplier": 1.2,
"entity_types": [
{
"filters": {
"test": "is_family",
"subject": "other",
"value": "monster"
},
"max_dist": 8
}
]
},
"minecraft:interact": {
"interactions": [
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "wheat" }
]
},
"event": "silverlabs:become_tamed",
"target": "self"
},
"use_item": true,
"interact_text": "action.interact.tame",
"play_sounds": "random.eat",
"particle_on_start": {
"particle_type": "minecraft:heart_particle",
"particle_y_offset": 1.0,
"particle_offset_towards_interactor": false
}
},
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "wheat_seeds" }
]
},
"event": "silverlabs:become_tamed",
"target": "self"
},
"use_item": true,
"interact_text": "action.interact.tame",
"play_sounds": "random.eat",
"particle_on_start": {
"particle_type": "minecraft:heart_particle",
"particle_y_offset": 1.0,
"particle_offset_towards_interactor": false
}
}
]
}
},
"silverlabs:tamed": {
"silverlabs:tamed_following": {
"minecraft:behavior.follow_owner": {
"priority": 4,
"speed_multiplier": 0.9,
@@ -105,30 +36,6 @@
"min_random_teleport_time": 15,
"target_distance": 64,
"target_teleport_chance": 0.05
},
"minecraft:interact": {
"interactions": [
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{
"test": "has_equipment",
"subject": "other",
"domain": "hand",
"operator": "equals",
"value": "air"
}
]
},
"event": "silverlabs:toggle_sit",
"target": "self"
},
"use_item": false,
"interact_text": "action.interact.sit"
}
]
}
},
@@ -150,7 +57,7 @@
"is_pushable_by_piston": true
},
"minecraft:collision_box": {
"width": 0.5,
"width": 0.4,
"height": 0.7
},
"minecraft:health": {
@@ -172,45 +79,112 @@
"total_supply": 15,
"suffocate_time": -1
},
"minecraft:despawn": {
"despawn_from_distance": {}
},
"minecraft:persistent": {},
"minecraft:nameable": {},
"minecraft:interact": {
"interactions": [
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "wheat" },
{
"test": "bool_property",
"domain": "silverlabs:heyhe_tamed",
"value": false
}
]
},
"event": "silverlabs:become_tamed",
"target": "self"
},
"use_item": true,
"interact_text": "Tame Hey Hey (Wheat)",
"play_sounds": "random.eat"
},
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "wheat_seeds" },
{
"test": "bool_property",
"domain": "silverlabs:heyhe_tamed",
"value": false
}
]
},
"event": "silverlabs:become_tamed",
"target": "self"
},
"use_item": true,
"interact_text": "Tame Hey Hey (Seeds)",
"play_sounds": "random.eat"
},
{
"on_interact": {
"filters": {
"all_of": [
{ "test": "is_family", "subject": "other", "value": "player" },
{
"test": "bool_property",
"domain": "silverlabs:heyhe_tamed",
"value": true
},
{
"test": "has_equipment",
"subject": "other",
"domain": "hand",
"operator": "not",
"value": "wheat"
}
]
},
"event": "silverlabs:toggle_sit",
"target": "self"
},
"use_item": false,
"interact_text": "Sit / Stand"
}
]
},
"minecraft:behavior.float": { "priority": 0 },
"minecraft:behavior.panic": {
"priority": 1,
"speed_multiplier": 1.5
},
"minecraft:behavior.random_look_around": { "priority": 10 },
"minecraft:behavior.random_stroll": {
"priority": 8,
"speed_multiplier": 0.6
},
"minecraft:behavior.look_at_player": {
"priority": 9,
"target_distance": 6,
"look_time": [2, 4]
},
"minecraft:behavior.random_look_around": {
"priority": 10
},
"minecraft:behavior.random_stroll": {
"priority": 8,
"speed_multiplier": 0.6
"minecraft:behavior.tempt": {
"priority": 3,
"speed_multiplier": 0.6,
"items": ["wheat", "wheat_seeds", "beetroot_seeds", "melon_seeds", "pumpkin_seeds"],
"can_tempt_vertically": false
}
},
"events": {
"minecraft:entity_spawned": {
"add": {
"component_groups": ["silverlabs:wild"]
}
"set_property": { "silverlabs:heyhe_tamed": false }
},
"silverlabs:hatched": {
"set_property": { "silverlabs:heyhe_tamed": false }
},
"silverlabs:become_tamed": {
"set_property": {
"silverlabs:heyhe_tamed": true
},
"remove": {
"component_groups": ["silverlabs:wild"]
},
"add": {
"component_groups": ["silverlabs:tamed"]
}
"set_property": { "silverlabs:heyhe_tamed": true },
"add": { "component_groups": ["silverlabs:tamed_following"] }
},
"silverlabs:toggle_sit": {
"sequence": [
@@ -220,12 +194,8 @@
"domain": "silverlabs:heyhe_sitting",
"value": false
},
"set_property": {
"silverlabs:heyhe_sitting": true
},
"add": {
"component_groups": ["silverlabs:sitting"]
}
"set_property": { "silverlabs:heyhe_sitting": true },
"add": { "component_groups": ["silverlabs:sitting"] }
},
{
"filters": {
@@ -233,12 +203,8 @@
"domain": "silverlabs:heyhe_sitting",
"value": true
},
"set_property": {
"silverlabs:heyhe_sitting": false
},
"remove": {
"component_groups": ["silverlabs:sitting"]
}
"set_property": { "silverlabs:heyhe_sitting": false },
"remove": { "component_groups": ["silverlabs:sitting"] }
}
]
}

View File

@@ -8,58 +8,69 @@
"is_experimental": false
},
"components": {
"minecraft:type_family": {
"family": ["heyhe_egg"]
},
"minecraft:collision_box": {
"width": 0.5,
"height": 0.6
},
"minecraft:physics": {
"has_gravity": true,
"has_collision": true
},
"minecraft:pushable": {
"is_pushable": false,
"is_pushable_by_piston": false
},
"minecraft:health": {
"value": 5,
"max": 5
},
"minecraft:timer": {
"looping": false,
"time": 10,
"time_down_event": {
"event": "silverlabs:hatch",
"target": "self"
"component_groups": {
"silverlabs:egg_waiting": {
"minecraft:timer": {
"looping": false,
"time": 10,
"time_down_event": {
"event": "silverlabs:start_hatching",
"target": "self"
}
}
},
"minecraft:ambient_sound_interval": {
"event_name": "mob.chicken.egg",
"range": 0,
"value": 8
"silverlabs:egg_hatching": {
"minecraft:spawn_entity": {
"entities": [
{
"min_wait_time": 0,
"max_wait_time": 1,
"spawn_sound": "mob.chicken.egg",
"spawn_entity": "silverlabs:heyhe_chicken",
"spawn_event": "silverlabs:hatched",
"num_to_spawn": 1,
"single_use": true
}
]
},
"minecraft:timer": {
"looping": false,
"time": 2,
"time_down_event": {
"event": "silverlabs:despawn_egg",
"target": "self"
}
}
},
"silverlabs:egg_despawning": {
"minecraft:instant_despawn": {}
}
},
"components": {
"minecraft:type_family": { "family": ["heyhe_egg"] },
"minecraft:physics": { "has_gravity": true, "has_collision": true },
"minecraft:collision_box": { "width": 0.5, "height": 0.6 },
"minecraft:pushable": { "is_pushable": false, "is_pushable_by_piston": false },
"minecraft:knockback_resistance": { "value": 1.0 },
"minecraft:persistent": {},
"minecraft:health": { "value": 5, "max": 5 }
},
"events": {
"silverlabs:hatch": {
"sequence": [
{
"spawn_entity": {
"entities_to_spawn": [
{
"entity_type": "silverlabs:heyhe_chicken",
"num_to_spawn": 1
}
]
}
},
{
"die": {}
}
]
"minecraft:entity_spawned": {
"add": { "component_groups": ["silverlabs:egg_waiting"] }
},
"silverlabs:start_hatching": {
"remove": { "component_groups": ["silverlabs:egg_waiting"] },
"add": { "component_groups": ["silverlabs:egg_hatching"] }
},
"silverlabs:despawn_egg": {
"add": { "component_groups": ["silverlabs:egg_despawning"] }
}
}
}