{
	"format_version": "1.10.0",
	"minecraft:client_entity": {
		"description": {
			"identifier": "dotvi:the_creator_puppet",
			"materials": {
				"default": "spider",
				"overlay": "stray_clothes"
			},
			"textures": {
				"default": "textures/entity/thepuppet/thepuppet",
				"overlay": "textures/entity/thepuppet/thepuppet_glow"
			},
			"geometry": {
				"default": "geometry.thepuppet",
				"overlay": "geometry.thepuppet"
			},
			"spawn_egg": {
				"base_color": "#000000",
				"overlay_color": "#FFFFFF"
			},
			"animations": {
				"chains_neutral": "animation.thepuppet.chains_neutral",
				"chains_hostile": "animation.thepuppet.chains_hostile",
				"bob": "animation.thepuppet.bob",
				"hurt": "animation.thepuppet.hurt",
				"move": "animation.thepuppet.move",
				"melee_attack": "animation.thepuppet.melee_attack",
				"summon_attack": "animation.thepuppet.summon_attack",
				"spin_attack": "animation.thepuppet.spin_attack",
				"angryspin": "animation.thepuppet.angryface",
				"attackface": "animation.thepuppet.angryface",
				"chains_controller": "controller.animation.thepuppet.chains",
				"hurt_controller": "controller.animation.thepuppet.hurt",
				"melee_attack_controller": "controller.animation.thepuppet.melee_attack",
				"summon_attack_controler": "controller.animation.thepuppet.summon_attack",
				"move_controller": "controller.animation.thepuppet.move",
				"spinattack_controller": "controller.animation.thepuppet.spinattack",
				"enemy_sight_screech_controller": "controller.animation.thepuppet.enemy_sight_screech",
				"intro": "animation.thepuppet.intro",
				"controller_intro": "controller.animation.thepuppet.intro"
			},
			"scripts": {
				"pre_animation": [
					"variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;",
					"variable.tcos1 = -variable.tcos0;",
					"variable.attack_body_rot_y = Math.sin(Math.sqrt(variable.attack_time) * 360.0) * 11.46;",
					"variable.cos_attack_body_rot_y = Math.cos(variable.attack_body_rot_y);",
					"variable.sin_attack_body_rot_y = Math.sin(variable.attack_body_rot_y);",
					"variable.internal_swim_pos = Math.mod(query.modified_distance_moved, 26.0);",
					"variable.attack = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
					"variable.attack2 = Math.sin(variable.attack_time * 180.0) * 57.3;",
					"variable.z_bob = Math.cos(query.life_time * 103.13244) * 2.865 + 2.865;",
					"variable.x_bob = Math.sin(query.life_time * 76.776372) * 2.865;",
					"variable.bob = query.life_time * 20;",
					"variable.skulkspots = 0.25 * math.cos(variable.bob * 2.578 + 180.0);"
				],
				"animate": [
					{
						"move": "query.modified_move_speed*1.7"
					},
					"summon_attack_controler",
					"melee_attack_controller",
					"hurt_controller",
					"chains_controller",
					"enemy_sight_screech_controller",
					{
						"spin_attack": "query.variant==4"
					},
					{
						"controller_intro": "!query.is_sheared"
					}
				]
			},
			"render_controllers": [
				"controller.render.puppet.default",
				"controller.render.puppet.overlay"
			],
			"enable_attachables": true,
			"particle_effects": {
				"castparticle": "dotvi:castparticle",
				"endgamesword": "dotvi:endgamesword",
				"puppetsummon": "dotvi:puppetsummon"
			},
			"sound_effects": {
				"spinattack": "mob.thepuppet.spinattack",
				"screech": "mob.thepuppet.screech",
				"playerattack": "mob.thepuppet.screech",
				"intro": "mob.thepuppet.intro"
			}
		}
	}
}