{
	"format_version": "1.18.10",
	"minecraft:entity": {
		"description": {
			"identifier": "minecraft:strider",
			"is_spawnable": true,
			"is_summonable": true,
			"is_experimental": false,
			"properties": {
				"ldz:ice_overlay": {
					"type": "bool",
					"client_sync": true,
					"default": false
				}
			},
			"animations": {
				"ctrl.ice_timer": "controller.animation.vanilla.ice_timer",
				"ice_timer": "animation.vanilla.ice_timer",
				"ice_damage": "animation.vanilla.ice_damage"
			},
			"scripts": {
				"animate": [
					"ctrl.ice_timer"
				]
			}
		},
		"component_groups": {
			"ice_overlay": {
				"minecraft:is_shaking": {}
			},
			"minecraft:strider_saddled": {
				"minecraft:is_saddled": {},
				"minecraft:loot": {
					"table": "loot_tables/entities/strider_saddled.json"
				},
				"minecraft:boostable": {
					"speed_multiplier": 2,
					"duration": 16,
					"boost_items": [
						{
							"item": "warped_fungus_on_a_stick",
							"damage": 1,
							"replace_item": "fishing_rod"
						}
					]
				},
				"minecraft:rideable": {
					"seat_count": 1,
					"crouching_skip_interact": true,
					"family_types": [
						"player"
					],
					"interact_text": "action.interact.ride.strider",
					"seats": {
						"position": [
							0,
							1.6,
							-0.2
						]
					}
				},
				"minecraft:item_controllable": {
					"control_items": "warped_fungus_on_a_stick"
				},
				"minecraft:behavior.controlled_by_player": {
					"priority": 0,
					"mount_speed_multiplier": 1.45
				}
			},
			"minecraft:strider_unsaddled": {
				"minecraft:interact": {
					"interactions": [
						{
							"on_interact": {
								"filters": {
									"test": "has_equipment",
									"subject": "other",
									"domain": "hand",
									"value": "saddle"
								},
								"event": "minecraft:on_saddled"
							},
							"use_item": true,
							"play_sounds": "saddle",
							"interact_text": "action.interact.saddle"
						}
					]
				}
			},
			"minecraft:strider_piglin_jockey": {
				"minecraft:addrider": {
					"entity_type": "minecraft:zombie_pigman",
					"spawn_event": "minecraft:spawn_as_strider_jockey"
				},
				"minecraft:rideable": {
					"seat_count": 1,
					"crouching_skip_interact": true,
					"family_types": [
						"player",
						"zombie_pigman"
					],
					"interact_text": "action.interact.ride.strider",
					"seats": {
						"position": [
							0,
							1.65,
							-0.2
						]
					}
				}
			},
			"minecraft:strider_parent_jockey": {
				"minecraft:addrider": {
					"entity_type": "minecraft:strider",
					"spawn_event": "minecraft:spawn_baby_strider_jockey"
				},
				"minecraft:rideable": {
					"seat_count": 1,
					"family_types": [
						"strider"
					],
					"seats": {
						"position": [
							0,
							1.6,
							0
						]
					}
				}
			},
			"minecraft:strider_baby": {
				"minecraft:type_family": {
					"family": [
						"strider",
						"strider_baby",
						"mob"
					]
				},
				"minecraft:is_baby": {},
				"minecraft:scale": {
					"value": 0.5
				},
				"minecraft:ageable": {
					"duration": 1200,
					"feed_items": [
						"warped_fungus"
					],
					"grow_up": {
						"event": "minecraft:ageable_grow_up",
						"target": "self"
					}
				},
				"minecraft:behavior.follow_parent": {
					"priority": 6,
					"speed_multiplier": 1.1
				}
			},
			"minecraft:strider_adult": {
				"minecraft:type_family": {
					"family": [
						"strider",
						"strider_adult",
						"mob"
					]
				},
				"minecraft:behavior.breed": {
					"priority": 4,
					"speed_multiplier": 1
				},
				"minecraft:loot": {
					"table": "loot_tables/entities/strider.json"
				},
				"minecraft:experience_reward": {
					"on_bred": "Math.Random(1,7)",
					"on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0"
				},
				"minecraft:breedable": {
					"require_tame": false,
					"breeds_with": {
						"mate_type": "minecraft:strider",
						"baby_type": "minecraft:strider",
						"breed_event": {
							"event": "minecraft:entity_born",
							"target": "baby"
						}
					},
					"breed_items": [
						"warped_fungus"
					]
				}
			},
			"minecraft:start_suffocating": {
				"minecraft:is_shaking": {},
				"minecraft:environment_sensor": {
					"triggers": [
						{
							"filters": {
								"any_of": [
									{
										"test": "in_lava",
										"subject": "self",
										"operator": "==",
										"value": true
									},
									{
										"test": "in_lava",
										"subject": "other",
										"operator": "==",
										"value": true
									}
								]
							},
							"event": "stop_suffocating"
						},
						{
							"filters": {
								"all_of": [
									{
										"test": "is_riding",
										"subject": "self",
										"operator": "equals",
										"value": false
									},
									{
										"test": "has_component",
										"subject": "self",
										"operator": "not",
										"value": "minecraft:behavior.move_to_liquid"
									}
								]
							},
							"event": "on_not_riding_parent"
						}
					]
				}
			},
			"minecraft:detect_suffocating": {
				"minecraft:environment_sensor": {
					"triggers": [
						{
							"filters": {
								"all_of": [
									{
										"test": "in_lava",
										"subject": "self",
										"operator": "==",
										"value": false
									},
									{
										"any_of": [
											{
												"test": "is_riding",
												"subject": "self",
												"operator": "==",
												"value": false
											},
											{
												"test": "in_lava",
												"subject": "other",
												"operator": "==",
												"value": false
											}
										]
									}
								]
							},
							"event": "start_suffocating"
						},
						{
							"filters": {
								"all_of": [
									{
										"test": "is_riding",
										"subject": "self",
										"operator": "equals",
										"value": false
									},
									{
										"test": "has_component",
										"subject": "self",
										"operator": "not",
										"value": "minecraft:behavior.move_to_liquid"
									}
								]
							},
							"event": "on_not_riding_parent"
						}
					]
				}
			},
			"minecraft:strider_pathing_behaviors": {
				"minecraft:behavior.rise_to_liquid_level": {
					"priority": 0,
					"liquid_y_offset": 0.25,
					"rise_delta": 0.01,
					"sink_delta": 0.01
				},
				"minecraft:behavior.move_to_liquid": {
					"priority": 7,
					"search_range": 16,
					"search_height": 10,
					"goal_radius": 0.9,
					"material_type": "Lava",
					"search_count": 30
				},
				"minecraft:behavior.random_stroll": {
					"priority": 8,
					"speed_multiplier": 0.8
				}
			},
			"instant_despawn": {
				"minecraft:instant_despawn": {}
			}
		},
		"components": {
			"minecraft:is_hidden_when_invisible": {},
			"minecraft:type_family": {
				"family": [
					"strider",
					"mob"
				]
			},
			"minecraft:collision_box": {
				"width": 0.9,
				"height": 1.7
			},
			"minecraft:pushable": {
				"is_pushable": true,
				"is_pushable_by_piston": true
			},
			"minecraft:hurt_on_condition": {
				"damage_conditions": [
					{
						"filters": {
							"test": "in_contact_with_water",
							"operator": "==",
							"value": true
						},
						"cause": "drowning",
						"damage_per_tick": 1
					}
				]
			},
			"minecraft:leashable": {
				"soft_distance": 4,
				"hard_distance": 6,
				"max_distance": 10
			},
			"minecraft:balloonable": {},
			"minecraft:despawn": {
				"despawn_from_distance": {}
			},
			"minecraft:movement": {
				"value": 0.16
			},
			"minecraft:lava_movement": {
				"value": 0.32
			},
			"minecraft:movement.basic": {},
			"minecraft:navigation.walk": {
				"can_path_over_lava": true,
				"avoid_water": true,
				"can_sink": false,
				"can_walk_in_lava": true
			},
			"minecraft:jump.static": {},
			"minecraft:health": {
				"value": 20,
				"max": 20
			},
			"minecraft:fire_immune": {},
			"minecraft:nameable": {},
			"minecraft:physics": {},
			"minecraft:behavior.look_at_player": {
				"priority": 9,
				"look_distance": 6,
				"probability": 0.02
			},
			"minecraft:behavior.random_look_around": {
				"priority": 10
			},
			"minecraft:behavior.panic": {
				"priority": 3,
				"speed_multiplier": 1.1,
				"panic_sound": "panic",
				"sound_interval": {
					"range_min": 1,
					"range_max": 3
				}
			},
			"minecraft:behavior.tempt": {
				"priority": 5,
				"speed_multiplier": 1.2,
				"items": [
					"warped_fungus",
					"warped_fungus_on_a_stick"
				],
				"can_tempt_while_ridden": true,
				"tempt_sound": "tempt",
				"sound_interval": {
					"range_min": 2,
					"range_max": 5
				}
			},
			"minecraft:conditional_bandwidth_optimization": {}
		},
		"events": {
			"minecraft:entity_spawned": {
				"randomize": [
					{
						"weight": 40,
						"trigger": "spawn_adult"
					},
					{
						"weight": 2,
						"trigger": "spawn_adult_piglin_jockey"
					},
					{
						"weight": 8,
						"trigger": "spawn_adult_parent_jockey"
					},
					{
						"weight": 50,
						"trigger": "spawn_baby"
					}
				]
			},
			"minecraft:entity_born": {
				"trigger": "spawn_baby"
			},
			"spawn_adult": {
				"add": {
					"component_groups": [
						"minecraft:strider_adult",
						"minecraft:strider_unsaddled",
						"minecraft:detect_suffocating",
						"minecraft:strider_pathing_behaviors"
					]
				}
			},
			"spawn_adult_parent_jockey": {
				"add": {
					"component_groups": [
						"minecraft:strider_adult",
						"minecraft:strider_parent_jockey",
						"minecraft:strider_unsaddled",
						"minecraft:detect_suffocating",
						"minecraft:strider_pathing_behaviors"
					]
				}
			},
			"spawn_adult_piglin_jockey": {
				"add": {
					"component_groups": [
						"minecraft:strider_adult",
						"minecraft:strider_saddled",
						"minecraft:strider_piglin_jockey",
						"minecraft:detect_suffocating",
						"minecraft:strider_pathing_behaviors"
					]
				}
			},
			"spawn_baby": {
				"add": {
					"component_groups": [
						"minecraft:strider_baby",
						"minecraft:detect_suffocating",
						"minecraft:strider_pathing_behaviors"
					]
				}
			},
			"minecraft:spawn_baby_strider_jockey": {
				"add": {
					"component_groups": [
						"minecraft:strider_baby",
						"minecraft:detect_suffocating"
					]
				}
			},
			"minecraft:ageable_grow_up": {
				"remove": {
					"component_groups": [
						"minecraft:strider_baby"
					]
				},
				"add": {
					"component_groups": [
						"minecraft:strider_adult",
						"minecraft:strider_unsaddled"
					]
				}
			},
			"minecraft:on_saddled": {
				"remove": {
					"component_groups": [
						"minecraft:strider_unsaddled"
					]
				},
				"add": {
					"component_groups": [
						"minecraft:strider_saddled"
					]
				}
			},
			"start_suffocating": {
				"add": {
					"component_groups": [
						"minecraft:start_suffocating"
					]
				}
			},
			"stop_suffocating": {
				"add": {
					"component_groups": [
						"minecraft:detect_suffocating"
					]
				},
				"remove": {
					"component_groups": [
						"minecraft:start_suffocating"
					]
				}
			},
			"on_not_riding_parent": {
				"add": {
					"component_groups": [
						"minecraft:strider_pathing_behaviors"
					]
				}
			},
			"set_ice_overlay_to_true": {
				"set_property": {
					"ldz:ice_overlay": true
				},
				"add": {
					"component_groups": [
						"ice_overlay"
					]
				}
			},
			"set_ice_overlay_to_false": {
				"set_property": {
					"ldz:ice_overlay": false
				},
				"remove": {
					"component_groups": [
						"ice_overlay"
					]
				}
			},
			"despawn": {
				"add": {
					"component_groups": [
						"instant_despawn"
					]
				}
			}
		}
	}
}