diff --git a/addon/heyhe_pet_BP/entities/heyhe_chicken.json b/addon/heyhe_pet_BP/entities/heyhe_chicken.json index 63c9deb..90c6d5c 100644 --- a/addon/heyhe_pet_BP/entities/heyhe_chicken.json +++ b/addon/heyhe_pet_BP/entities/heyhe_chicken.json @@ -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"] } } ] } diff --git a/addon/heyhe_pet_BP/entities/heyhe_egg.json b/addon/heyhe_pet_BP/entities/heyhe_egg.json index 8d6edc3..dfae884 100644 --- a/addon/heyhe_pet_BP/entities/heyhe_egg.json +++ b/addon/heyhe_pet_BP/entities/heyhe_egg.json @@ -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"] } } } } diff --git a/addon/heyhe_pet_RP/animations/heyhe_chicken.animation.json b/addon/heyhe_pet_RP/animations/heyhe_chicken.animation.json index e9fa149..ef9e07a 100644 --- a/addon/heyhe_pet_RP/animations/heyhe_chicken.animation.json +++ b/addon/heyhe_pet_RP/animations/heyhe_chicken.animation.json @@ -4,23 +4,32 @@ "animation.heyhe_chicken.idle": { "loop": true, - "animation_length": 2.0, + "animation_length": 1.2, "bones": { "body": { "position": { "0.0": [0, 0, 0], - "1.0": [0, 0.4, 0], - "2.0": [0, 0, 0] + "0.6": [0, 0.3, 0], + "1.2": [0, 0, 0] + } + }, + "neck": { + "rotation": { + "0.0": [0, 0, 0], + "0.2": [22, 0, 0], + "0.35": [0, 0, 0], + "0.55": [22, 0, 0], + "0.7": [0, 0, 0], + "0.9": [22, 0, 0], + "1.05": [0, 0, 0], + "1.2": [0, 0, 0] } }, "head": { "rotation": { - "0.0": [0, 0, 0], - "0.4": [10, 0, 0], - "0.8": [0, 0, 0], - "1.4": [10, 0, 0], - "1.8": [0, 0, 0], - "2.0": [0, 0, 0] + "0.0": [0, 5, 0], + "0.6": [0, -5, 0], + "1.2": [0, 5, 0] } } } @@ -28,43 +37,57 @@ "animation.heyhe_chicken.walk": { "loop": true, - "animation_length": 0.8, + "animation_length": 0.7, "bones": { "body": { "rotation": { - "0.0": [0, 0, 4], - "0.2": [0, 0, 0], - "0.4": [0, 0, -4], - "0.6": [0, 0, 0], - "0.8": [0, 0, 4] + "0.0": [0, 0, 5], + "0.175":[0, 0, 0], + "0.35": [0, 0, -5], + "0.525":[0, 0, 0], + "0.7": [0, 0, 5] } }, - "head": { - "rotation": { - "0.0": [0, 0, -4], - "0.2": [0, 0, 0], - "0.4": [0, 0, 4], - "0.6": [0, 0, 0], - "0.8": [0, 0, -4] - }, + "neck": { "position": { "0.0": [0, 0, 0.5], - "0.4": [0, 0, -0.5], - "0.8": [0, 0, 0.5] + "0.35": [0, 0, -0.5], + "0.7": [0, 0, 0.5] + }, + "rotation": { + "0.0": [10, 0, 0], + "0.2": [-5, 0, 0], + "0.35": [10, 0, 0], + "0.55": [-5, 0, 0], + "0.7": [10, 0, 0] } }, "leg_left": { "rotation": { - "0.0": [ 15, 0, 0], - "0.4": [-15, 0, 0], - "0.8": [ 15, 0, 0] + "0.0": [ 20, 0, 0], + "0.35": [-20, 0, 0], + "0.7": [ 20, 0, 0] } }, "leg_right": { "rotation": { - "0.0": [-15, 0, 0], - "0.4": [ 15, 0, 0], - "0.8": [-15, 0, 0] + "0.0": [-20, 0, 0], + "0.35": [ 20, 0, 0], + "0.7": [-20, 0, 0] + } + }, + "wing_left": { + "rotation": { + "0.0": [0, 0, -5], + "0.35": [0, 0, -12], + "0.7": [0, 0, -5] + } + }, + "wing_right": { + "rotation": { + "0.0": [0, 0, 5], + "0.35": [0, 0, 12], + "0.7": [0, 0, 5] } } } @@ -72,40 +95,40 @@ "animation.heyhe_chicken.sit": { "loop": true, - "animation_length": 1.6, + "animation_length": 0.8, "bones": { "body": { - "position": { - "0.0": [0, -2.5, 0], - "0.8": [0, -2.5, 0] - }, + "position": { "0.0": [0, -2, 0] }, + "rotation": { "0.0": [8, 0, 0] } + }, + "neck": { "rotation": { - "0.0": [5, 0, 0], - "0.8": [5, 0, 0] + "0.0": [0, 0, 0], + "0.2": [18, 0, 0], + "0.4": [0, 0, 0], + "0.6": [18, 0, 0], + "0.8": [0, 0, 0] } }, "wing_left": { "rotation": { - "0.0": [0, 0, -10], - "0.8": [0, 0, -18], - "1.6": [0, 0, -10] + "0.0": [0, 0, -15], + "0.4": [0, 0, -22], + "0.8": [0, 0, -15] } }, "wing_right": { "rotation": { - "0.0": [0, 0, 10], - "0.8": [0, 0, 18], - "1.6": [0, 0, 10] + "0.0": [0, 0, 15], + "0.4": [0, 0, 22], + "0.8": [0, 0, 15] } }, - "head": { - "rotation": { - "0.0": [ 0, 0, 0], - "0.4": [12, 0, 0], - "0.8": [ 0, 0, 0], - "1.2": [12, 0, 0], - "1.6": [ 0, 0, 0] - } + "leg_left": { + "rotation": { "0.0": [30, 0, 0] } + }, + "leg_right": { + "rotation": { "0.0": [30, 0, 0] } } } } diff --git a/addon/heyhe_pet_RP/models/entity/heyhe_chicken.geo.json b/addon/heyhe_pet_RP/models/entity/heyhe_chicken.geo.json index 2506921..95b7b6f 100644 --- a/addon/heyhe_pet_RP/models/entity/heyhe_chicken.geo.json +++ b/addon/heyhe_pet_RP/models/entity/heyhe_chicken.geo.json @@ -11,194 +11,215 @@ "visible_bounds_offset": [0, 0.75, 0] }, "bones": [ - { - "name": "root", - "pivot": [0, 0, 0] - }, + + { "name": "root", "pivot": [0, 0, 0] }, + { "name": "body", "parent": "root", - "pivot": [0, 7, 0], + "pivot": [0, 5, 0], "cubes": [ { - "origin": [-5, 3, -4], - "size": [10, 8, 8], + "comment": "W=5 H=7 D=4 → uv needs 2*(4+5)=18 wide, 4+7=11 tall", + "origin": [-2.5, 1, -2], + "size": [5, 7, 4], "uv": [0, 0] } ] }, + { "name": "wing_left", "parent": "body", - "pivot": [-5, 9, 0], + "pivot": [-2.5, 7, 0], "cubes": [ { - "origin": [-7, 6, -2], - "size": [2, 5, 5], - "uv": [24, 0] + "comment": "W=2 H=5 D=4 → uv needs 2*(4+2)=12 wide, 4+5=9 tall", + "origin": [-4.5, 3, -2], + "size": [2, 5, 4], + "uv": [26, 0] } ] }, + { "name": "wing_right", "parent": "body", - "pivot": [5, 9, 0], + "pivot": [2.5, 7, 0], "mirror": true, "cubes": [ { - "origin": [5, 6, -2], - "size": [2, 5, 5], - "uv": [24, 0] + "origin": [2.5, 3, -2], + "size": [2, 5, 4], + "uv": [26, 0] } ] }, + { "name": "tail", "parent": "body", - "pivot": [0, 11, -4], + "pivot": [0, 8, -2], "rotation": [-30, 0, 0], "cubes": [ { - "origin": [-2, 9, -6], - "size": [4, 4, 2], - "uv": [40, 0] + "comment": "W=3 H=4 D=2 → uv needs 2*(2+3)=10 wide, 2+4=6 tall", + "origin": [-1.5, 6, -4], + "size": [3, 4, 2], + "uv": [38, 0] } ] }, + { "name": "neck", "parent": "body", - "pivot": [0, 11, 3], + "pivot": [0, 8, 1.5], "cubes": [ { - "origin": [-2, 8, 2], - "size": [4, 4, 3], - "uv": [14, 0] + "comment": "W=2 H=5 D=2 → uv needs 2*(2+2)=8 wide, 2+5=7 tall", + "origin": [-1, 6, 1], + "size": [2, 5, 2], + "uv": [18, 0] } ] }, + { "name": "head", "parent": "neck", - "pivot": [0, 13, 4], + "pivot": [0, 11, 2], "cubes": [ { - "origin": [-3, 11, 1], - "size": [6, 6, 6], - "uv": [0, 16] + "comment": "W=4 H=4 D=4 → uv needs 2*(4+4)=16 wide, 4+4=8 tall", + "origin": [-2, 11, 0], + "size": [4, 4, 4], + "uv": [0, 11] } ] }, + { "name": "comb_a", "parent": "head", - "pivot": [0, 17, 4], "cubes": [ { - "origin": [-1, 17, 2], - "size": [2, 2, 2], - "uv": [30, 16] + "comment": "front bump W=1 H=2 D=1", + "origin": [-0.5, 15, 0.5], + "size": [1, 2, 1], + "uv": [16, 11] } ] }, + { "name": "comb_b", "parent": "head", - "pivot": [0, 17, 4], "cubes": [ { - "origin": [-1, 16, 4], - "size": [2, 3, 2], - "uv": [38, 16] + "comment": "middle/tallest bump W=1 H=3 D=1", + "origin": [-0.5, 15, 1.5], + "size": [1, 3, 1], + "uv": [20, 11] } ] }, + { "name": "comb_c", "parent": "head", - "pivot": [0, 17, 4], "cubes": [ { - "origin": [-1, 17, 6], - "size": [2, 2, 2], - "uv": [30, 16] + "comment": "back bump W=1 H=2 D=1", + "origin": [-0.5, 15, 2.5], + "size": [1, 2, 1], + "uv": [16, 11] } ] }, + { "name": "beak", "parent": "head", - "pivot": [0, 13, 7], "cubes": [ { - "origin": [-1, 12, 7], + "comment": "W=2 H=2 D=2 → uv needs 2*(2+2)=8 wide, 2+2=4 tall", + "origin": [-1, 12, 4], "size": [2, 2, 2], - "uv": [44, 16] + "uv": [24, 11] } ] }, + { "name": "wattle", "parent": "head", - "pivot": [0, 11, 7], "cubes": [ { - "origin": [-1, 9, 6], - "size": [2, 2, 1], - "uv": [50, 16] + "comment": "W=1 H=2 D=1 → uv needs 4 wide, 3 tall", + "origin": [-0.5, 11, 3.5], + "size": [1, 2, 1], + "uv": [32, 11] } ] }, + { "name": "leg_left", "parent": "root", - "pivot": [-2, 5, 0], + "pivot": [-1, 4, 0], "cubes": [ { - "origin": [-3, 1, -1], - "size": [2, 4, 2], + "comment": "W=1 H=4 D=1 → uv needs 4 wide, 5 tall", + "origin": [-1.5, 0, -0.5], + "size": [1, 4, 1], "uv": [48, 0] } ] }, + { "name": "foot_left", "parent": "leg_left", - "pivot": [-2, 1, 0], + "pivot": [-1, 0, 0], "cubes": [ { - "origin": [-4, 0, -2], - "size": [4, 1, 4], - "uv": [48, 6] + "comment": "W=3 H=1 D=3 → uv needs 12 wide, 4 tall", + "origin": [-2.5, -1, -1.5], + "size": [3, 1, 3], + "uv": [52, 0] } ] }, + { "name": "leg_right", "parent": "root", - "pivot": [2, 5, 0], + "pivot": [1, 4, 0], "mirror": true, "cubes": [ { - "origin": [1, 1, -1], - "size": [2, 4, 2], + "origin": [0.5, 0, -0.5], + "size": [1, 4, 1], "uv": [48, 0] } ] }, + { "name": "foot_right", "parent": "leg_right", - "pivot": [2, 1, 0], + "pivot": [1, 0, 0], "mirror": true, "cubes": [ { - "origin": [0, 0, -2], - "size": [4, 1, 4], - "uv": [48, 6] + "origin": [-0.5, -1, -1.5], + "size": [3, 1, 3], + "uv": [52, 0] } ] } + ] } ] diff --git a/addon/heyhe_pet_RP/textures/entity/heyhe_chicken.png b/addon/heyhe_pet_RP/textures/entity/heyhe_chicken.png index 4535ee9..b1e0223 100644 Binary files a/addon/heyhe_pet_RP/textures/entity/heyhe_chicken.png and b/addon/heyhe_pet_RP/textures/entity/heyhe_chicken.png differ