1
0
mirror of https://github.com/Mojang/bedrock-samples.git synced 2025-01-31 06:01:26 +00:00
Mike Ammerlaan 5ce65764d3 v1.21.50.7
2024-12-03 08:43:20 -08:00

1185 lines
30 KiB
JSON

{
"format_version": "1.21.40",
"minecraft:entity": {
"description": {
"identifier": "minecraft:wolf",
"spawn_category": "creature",
"is_spawnable": true,
"is_summonable": true,
"properties": {
"minecraft:is_armorable": {
"type": "bool",
"client_sync": false,
"default": false
},
"minecraft:has_increased_max_health": {
"type": "bool",
"client_sync": false,
"default": false
}
}
},
"component_groups": {
"minecraft:wolf_baby": {
"minecraft:is_baby": {
},
"minecraft:scale": {
"value": 0.5
},
"minecraft:ageable": {
"duration": 1200,
"feed_items": [
"chicken",
"cooked_chicken",
"beef",
"cooked_beef",
"muttonRaw",
"muttonCooked",
"porkchop",
"cooked_porkchop",
"rabbit",
"cooked_rabbit",
"rotten_flesh"
],
"grow_up": {
"event": "minecraft:ageable_grow_up",
"target": "self"
}
},
"minecraft:behavior.panic": {
"priority": 1,
"speed_multiplier": 1.25
}
},
"minecraft:wolf_adult": {
"minecraft:experience_reward": {
"on_bred": "Math.Random(1,7)",
"on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0"
},
"minecraft:loot": {
"table": "loot_tables/entities/wolf.json"
},
"minecraft:breedable": {
"require_tame": true,
"require_full_health": true,
"breeds_with": {
"mate_type": "minecraft:wolf",
"baby_type": "minecraft:wolf",
"breed_event": {
"event": "minecraft:entity_born",
"target": "baby"
}
},
"breed_items": [
"chicken",
"cooked_chicken",
"beef",
"cooked_beef",
"muttonRaw",
"muttonCooked",
"porkchop",
"cooked_porkchop",
"rabbit",
"cooked_rabbit",
"rotten_flesh"
]
}
},
"minecraft:wolf_angry": {
"minecraft:angry": {
"duration": 25,
"broadcast_anger": true,
"broadcast_range": 20,
"broadcast_anger_when_dying": false,
"calm_event": {
"event": "minecraft:on_calm",
"target": "self"
}
},
"minecraft:on_target_acquired": {
},
"minecraft:rideable": {
"seat_count": 1,
"family_types": [
"zombie"
],
"seats": {
"position": [ 0.0, 0.675, -0.1 ]
}
}
},
"minecraft:wolf_wild": {
"minecraft:behavior.avoid_mob_type": {
"priority": 3,
"entity_types": [
{
"filters": {
"test": "is_family",
"subject": "other",
"value": "llama"
},
"max_dist": 24,
"walk_speed_multiplier": 1.5,
"sprint_speed_multiplier": 1.5
}
],
"probability_per_strength": 0.14
},
"minecraft:tameable": {
"probability": 0.33,
"tame_items": "bone",
"tame_event": {
"event": "minecraft:on_tame",
"target": "self"
}
},
"minecraft:behavior.nearest_attackable_target": {
"priority": 4,
"reselect_targets": true,
"must_see": true,
"entity_types": [
{
"filters": {
"any_of": [
{
"test": "is_family",
"subject": "other",
"value": "skeleton"
},
{
"test": "is_family",
"subject": "other",
"value": "sheep"
},
{
"test": "is_family",
"subject": "other",
"value": "rabbit"
},
{
"test": "is_family",
"subject": "other",
"value": "fox"
}
]
},
"max_dist": 16
},
{
"filters": {
"all_of": [
{
"test": "is_family",
"subject": "other",
"value": "baby_turtle"
},
{
"test": "in_water",
"subject": "other",
"operator": "!=",
"value": true
}
]
},
"max_dist": 16
},
{
"filters": {
"all_of": [
{
"test": "is_family",
"subject": "other",
"value": "skeleton"
},
{
"test": "is_underwater",
"subject": "other",
"operator": "!=",
"value": true
}
]
},
"max_dist": 16
}
]
},
"minecraft:on_target_acquired": {
"event": "minecraft:become_angry",
"target": "self"
},
"minecraft:rideable": {
"seat_count": 1,
"family_types": [
"zombie"
],
"seats": {
"position": [ 0.0, 0.675, -0.1 ]
}
}
},
"minecraft:wolf_increased_max_health": {
"minecraft:health": {
"value": 40,
"max": 40
}
},
"minecraft:wolf_tame": {
"minecraft:is_tamed": {
},
"minecraft:color": {
"value": 14
},
"minecraft:attack": {
"damage": 4
},
"minecraft:behavior.teleport_to_owner": {
"priority": 1,
"filters": {
"any_of": [
{
"all_of": [
{
"test": "owner_distance",
"operator": ">",
"value": 12
},
{ "test": "is_panicking" }
]
},
{
"all_of": [
{
"test": "owner_distance",
"operator": ">",
"value": 24
},
{ "test": "has_target" }
]
}
]
}
},
"minecraft:behavior.owner_hurt_by_target": {
"priority": 1
},
"minecraft:behavior.breed": {
"priority": 2,
"speed_multiplier": 1.0
},
"minecraft:behavior.owner_hurt_target": {
"priority": 2
},
"minecraft:behavior.nearest_attackable_target": {
"priority": 5,
"must_see": true,
"entity_types": [
{
"filters": {
"test": "is_family",
"subject": "other",
"value": "skeleton"
},
"max_dist": 16
}
]
},
"minecraft:behavior.follow_owner": {
"priority": 6,
"speed_multiplier": 1.0,
"start_distance": 10,
"stop_distance": 2
},
"minecraft:sittable": {
},
"minecraft:is_dyeable": {
"interact_text": "action.interact.dye"
}
},
"minecraft:wolf_armorable": {
"minecraft:interact": {
"interactions": [
{
"on_interact": {
"filters": {
"all_of": [
{
"test": "has_equipment",
"subject": "self",
"domain": "armor",
"operator": "not",
"value": "wolf_armor"
},
{
"test": "has_equipment",
"subject": "other",
"domain": "hand",
"value": "wolf_armor"
},
{
"test": "is_family",
"subject": "other",
"value": "player"
},
{
"test": "is_owner",
"subject": "other",
"value": true
},
{
"test": "is_sneak_held",
"subject": "other",
"value": false
}
]
},
"target": "self"
},
"equip_item_slot": "slot.armor.body",
"play_sounds": "armor.equip_wolf",
"interact_text": "action.interact.equipwolfarmor"
},
{
"on_interact": {
"filters": {
"all_of": [
{
"test": "has_equipment",
"subject": "self",
"domain": "armor",
"value": "wolf_armor"
},
{
"test": "has_equipment",
"subject": "other",
"domain": "hand",
"value": "shears"
},
{
"test": "is_family",
"subject": "other",
"value": "player"
},
{
"test": "is_owner",
"subject": "other",
"value": true
},
{
"test": "is_sneak_held",
"subject": "other",
"value": false
}
]
},
"target": "self"
},
"hurt_item": 1,
"drop_item_slot": "slot.armor.body",
"play_sounds": "armor.unequip_wolf",
"interact_text": "action.interact.removewolfarmor",
"vibration": "shear"
},
{
"on_interact": {
"filters": {
"all_of": [
{
"test": "is_sitting",
"subject": "self"
},
{
"test": "has_damaged_equipment",
"subject": "self",
"domain": "armor",
"value": "wolf_armor"
},
{
"test": "is_family",
"subject": "other",
"value": "player"
},
{
"test": "is_owner",
"subject": "other",
"value": true
},
{
"test": "is_sneak_held",
"subject": "other",
"value": false
},
{
"test": "has_equipment",
"domain": "hand",
"subject": "other",
"value": "armadillo_scute"
}
]
},
"target": "self"
},
"repair_entity_item": {
"slot": "slot.armor.body",
"amount": 8
},
"use_item": true,
"play_sounds": "armor.repair_wolf",
"interact_text": "action.interact.repairwolfarmor"
}
]
}
},
"minecraft:wolf_pale": {
"minecraft:variant": {
"value": 0
}
},
"minecraft:wolf_ashen": {
"minecraft:variant": {
"value": 1
}
},
"minecraft:wolf_black": {
"minecraft:variant": {
"value": 2
}
},
"minecraft:wolf_chestnut": {
"minecraft:variant": {
"value": 3
}
},
"minecraft:wolf_rusty": {
"minecraft:variant": {
"value": 4
}
},
"minecraft:wolf_snowy": {
"minecraft:variant": {
"value": 5
}
},
"minecraft:wolf_spotted": {
"minecraft:variant": {
"value": 6
}
},
"minecraft:wolf_striped": {
"minecraft:variant": {
"value": 7
}
},
"minecraft:wolf_woods": {
"minecraft:variant": {
"value": 8
}
}
},
"components": {
"minecraft:leashable": {
"soft_distance": 4.0,
"hard_distance": 6.0,
"max_distance": 10.0,
"on_leash": {
"event": "minecraft:on_leash",
"target": "self"
},
"on_unleash": {
"event": "minecraft:on_unleash",
"target": "self"
}
},
"minecraft:balloonable": {
"mass": 0.8
},
"minecraft:is_hidden_when_invisible": {
},
"minecraft:nameable": {
},
"minecraft:type_family": {
"family": [ "wolf", "mob" ]
},
"minecraft:breathable": {
"total_supply": 15,
"suffocate_time": 0
},
"minecraft:collision_box": {
"width": 0.6,
"height": 0.8
},
"minecraft:health": {
"value": 8,
"max": 8
},
"minecraft:hurt_on_condition": {
"damage_conditions": [
{
"filters": {
"test": "in_lava",
"subject": "self",
"operator": "==",
"value": true
},
"cause": "lava",
"damage_per_tick": 4
}
]
},
"minecraft:movement": {
"value": 0.3
},
"minecraft:navigation.walk": {
"can_path_over_water": true,
"avoid_damage_blocks": true
},
"minecraft:movement.basic": {
},
"minecraft:jump.static": {
},
"minecraft:can_climb": {
},
"minecraft:attack": {
"damage": 3
},
"minecraft:healable": {
"items": [
{
"item": "porkchop",
"heal_amount": 6
},
{
"item": "cooked_porkchop",
"heal_amount": 16
},
{
"item": "fish",
"heal_amount": 4
},
{
"item": "salmon",
"heal_amount": 4
},
{
"item": "clownfish",
"heal_amount": 2
},
{
"item": "pufferfish",
"heal_amount": 2
},
{
"item": "cooked_fish",
"heal_amount": 10
},
{
"item": "cooked_salmon",
"heal_amount": 12
},
{
"item": "beef",
"heal_amount": 6
},
{
"item": "cooked_beef",
"heal_amount": 16
},
{
"item": "chicken",
"heal_amount": 4
},
{
"item": "cooked_chicken",
"heal_amount": 12
},
{
"item": "muttonRaw",
"heal_amount": 4
},
{
"item": "muttonCooked",
"heal_amount": 12
},
{
"item": "rotten_flesh",
"heal_amount": 8
},
{
"item": "rabbit",
"heal_amount": 6
},
{
"item": "cooked_rabbit",
"heal_amount": 10
},
{
"item": "rabbit_stew",
"heal_amount": 20
}
]
},
"minecraft:environment_sensor": {
"triggers": [
{
// Pre 1.20.70, we overwrote the "health" attribute in "wolf_tame". In 1.20.70, we tweaked its values. As attributes are applied
// to pre-existing runtime entities only after composition changes, this alone wouldn't have affected old Wolves. To ensure all
// Wolves receive the adjustment, we now overwrite the "health" attribute via a separate component group, applying it at runtime.
"filters": {
"all_of": [
{
"test": "bool_property",
"operator": "!=",
"domain": "minecraft:has_increased_max_health"
},
{
"test": "has_component",
"value": "minecraft:is_tamed"
}
]
},
"event": "minecraft:increase_max_health"
},
{
// We apply "wolf_armorable" this way instead of reacting to "ageable_grow_up" and "on_tame" as that will fail if
// the events are emittied in the same tick. Moreover, this takes care of upgrading pre-existing adult tame Wolves.
"filters": {
"all_of": [
{
"test": "bool_property",
"operator": "!=",
"domain": "minecraft:is_armorable"
},
{
"test": "has_component",
"operator": "!=",
"value": "minecraft:is_baby"
},
{
"test": "has_component",
"value": "minecraft:is_tamed"
}
]
},
"event": "minecraft:become_armorable"
}
]
},
"minecraft:despawn": {
"despawn_from_distance": {}
},
"minecraft:physics": {
},
"minecraft:pushable": {
"is_pushable": true,
"is_pushable_by_piston": true
},
"minecraft:conditional_bandwidth_optimization": {
},
"minecraft:behavior.float": {
"priority": 0
},
"minecraft:behavior.mount_pathing": {
"priority": 1,
"speed_multiplier": 1.25,
"target_dist": 0,
"track_target": true
},
"minecraft:behavior.panic": {
"priority": 2,
"speed_multiplier": 1.25,
"damage_sources": [ "campfire", "fire", "fire_tick", "freezing", "lightning", "lava", "magma", "temperature", "soul_campfire" ],
"ignore_mob_damage": true
},
"minecraft:behavior.stay_while_sitting": {
"priority": 3
},
"minecraft:behavior.hurt_by_target": {
"priority": 3
},
"minecraft:behavior.leap_at_target": {
"priority": 4,
"yd": 0.4
},
"minecraft:behavior.melee_box_attack": {
"priority": 5
},
"minecraft:behavior.look_at_player": {
"priority": 6,
"target_distance": 6.0,
"probability": 0.02
},
"minecraft:behavior.random_stroll": {
"priority": 8,
"speed_multiplier": 1.0
},
"minecraft:behavior.beg": {
"priority": 9,
"look_distance": 8,
"look_time": [ 2, 4 ],
"items": [
"bone",
"porkchop",
"cooked_porkchop",
"chicken",
"cooked_chicken",
"beef",
"cooked_beef",
"rotten_flesh",
"muttonraw",
"muttoncooked",
"rabbit",
"cooked_rabbit"
]
}
},
"events": {
"minecraft:entity_spawned": {
"sequence": [
{
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
{
// Pale Wolf: every non-cold Taiga, except Old Growth Pine Taiga and Old Growth Spruce Taiga.
"filters": {
"all_of": [
{
"test": "has_biome_tag",
"value": "taiga"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "cold"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "mega"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "mutated"
}
]
},
"add": {
"component_groups": [
"minecraft:wolf_pale"
]
}
},
{
// Ashen Wolf: every cold Taiga.
"filters": {
"all_of": [
{
"test": "has_biome_tag",
"value": "taiga"
},
{
"test": "has_biome_tag",
"value": "cold"
}
]
},
"add": {
"component_groups": [
"minecraft:wolf_ashen"
]
}
},
{
// Black Wolf: Old Growth Pine Taiga only.
"filters": {
"all_of": [
{
"test": "has_biome_tag",
"value": "mega"
},
{
"test": "has_biome_tag",
"value": "taiga"
},
{
"test": "has_biome_tag",
"value": "forest"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "mutated"
}
]
},
"add": {
"component_groups": [
"minecraft:wolf_black"
]
}
},
{
// Chestnut Wolf: Old Growth Spruce Taiga only.
"filters": {
"all_of": [
{
"test": "has_biome_tag",
"value": "mega"
},
{
"test": "has_biome_tag",
"value": "taiga"
},
{
"test": "has_biome_tag",
"value": "forest"
},
{
"test": "has_biome_tag",
"value": "mutated"
}
]
},
"add": {
"component_groups": [
"minecraft:wolf_chestnut"
]
}
},
{
// Rusty Wolf: every Jungle, which is broader than the variant's spawn rule.
"filters": {
"test": "has_biome_tag",
"value": "jungle"
},
"add": {
"component_groups": [
"minecraft:wolf_rusty"
]
}
},
{
// Snowy Wolf: Grove only.
"filters": {
"test": "has_biome_tag",
"value": "grove"
},
"add": {
"component_groups": [
"minecraft:wolf_snowy"
]
}
},
{
// Spotted Wolf: every Savanna, which is broader than the variant's spawn rule.
"filters": {
"test": "has_biome_tag",
"value": "savanna"
},
"add": {
"component_groups": [
"minecraft:wolf_spotted"
]
}
},
{
// Striped Wolf: every Badland, which is broader than the variant's spawn rule.
"filters": {
"test": "has_biome_tag",
"value": "mesa"
},
"add": {
"component_groups": [
"minecraft:wolf_striped"
]
}
},
{
// Woods Wolf: Forest only.
"filters": {
"all_of": [
{
"test": "has_biome_tag",
"value": "forest"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "birch"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "taiga"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "roofed"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "mutated"
},
{
"test": "has_biome_tag",
"operator": "not",
"value": "mountain"
}
]
},
"add": {
"component_groups": [
"minecraft:wolf_woods"
]
}
}
]
},
"minecraft:entity_born": {
"trigger": "minecraft:spawn_tame_baby"
},
"minecraft:spawn_wild_pale": {
"add": {
"component_groups": [
"minecraft:wolf_pale"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_ashen": {
"add": {
"component_groups": [
"minecraft:wolf_ashen"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_black": {
"add": {
"component_groups": [
"minecraft:wolf_black"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_chestnut": {
"add": {
"component_groups": [
"minecraft:wolf_chestnut"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_rusty": {
"add": {
"component_groups": [
"minecraft:wolf_rusty"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_snowy": {
"add": {
"component_groups": [
"minecraft:wolf_snowy"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_spotted": {
"add": {
"component_groups": [
"minecraft:wolf_spotted"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_striped": {
"add": {
"component_groups": [
"minecraft:wolf_striped"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_woods": {
"add": {
"component_groups": [
"minecraft:wolf_woods"
]
},
"trigger": "minecraft:spawn_wild_baby_or_adult"
},
"minecraft:spawn_wild_baby_or_adult": {
"sequence": [
{
"randomize": [
{
"weight": 9,
"trigger": "minecraft:spawn_wild_adult"
},
{
"weight": 1,
"trigger": "minecraft:spawn_wild_baby"
}
]
}
]
},
"minecraft:spawn_wild_baby": {
"add": {
"component_groups": [
"minecraft:wolf_baby",
"minecraft:wolf_wild"
]
}
},
"minecraft:spawn_wild_adult": {
"add": {
"component_groups": [
"minecraft:wolf_adult",
"minecraft:wolf_wild"
]
}
},
"minecraft:spawn_tame_baby": {
"add": {
"component_groups": [
"minecraft:wolf_baby",
"minecraft:wolf_tame"
]
}
},
"minecraft:spawn_tame_adult": {
"add": {
"component_groups": [
"minecraft:wolf_adult",
"minecraft:wolf_tame"
]
}
},
"minecraft:ageable_grow_up": {
"remove": {
"component_groups": [
"minecraft:wolf_baby"
]
},
"add": {
"component_groups": [
"minecraft:wolf_adult"
]
}
},
"minecraft:ageable_set_baby": {
"remove": {
"component_groups": [
"minecraft:wolf_adult"
]
},
"add": {
"component_groups": [
"minecraft:wolf_baby"
]
}
},
"minecraft:on_tame": {
"remove": {
"component_groups": [
"minecraft:wolf_wild"
]
},
"add": {
"component_groups": [
"minecraft:wolf_tame"
]
}
},
"minecraft:increase_max_health": {
"add": {
"component_groups": [
"minecraft:wolf_increased_max_health"
]
},
"set_property": {
"minecraft:has_increased_max_health": true
}
},
"minecraft:become_angry": {
"remove": {
"component_groups": [
"minecraft:wolf_wild"
]
},
"add": {
"component_groups": [
"minecraft:wolf_angry"
]
}
},
"minecraft:on_calm": {
"remove": {
"component_groups": [
"minecraft:wolf_angry"
]
},
"add": {
"component_groups": [
"minecraft:wolf_wild"
]
}
},
"minecraft:become_armorable": {
"add": {
"component_groups": [
"minecraft:wolf_armorable"
]
},
"set_property": {
"minecraft:is_armorable": true
}
}
}
}
}