{
  "format_version": "1.19.0",
  "minecraft:attachable": {
    "description": {
      "identifier": "tsu_morph:frog_morph",
      "materials": {
        "default": "entity_alphatest"
      },
      "textures": {
        "default": "textures/entity/frog/temperate_frog"
      },
      "geometry": {
        "default": "geometry.tsu_morph.frog"
      },
      "animations": {
        "croak": "animation.tsu_morph.frog.croak",
        "jump": "animation.tsu_morph.frog.jump",
        "attack": "animation.tsu_morph.frog.tongue",
        "walk": "animation.tsu_morph.frog.walk",
        "swim": "animation.tsu_morph.frog.swim",
        "idle_water": "animation.tsu_morph.frog.idle.water",
        "look_at_target": "animation.common.look_at_target",
        "general": "controller.animation.tsu_morph.frog.general",
        "attack_controller": "controller.animation.tsu_morph.attachable_attack",

        "hurt_sounds": "controller.animation.tsu_morph.hurt_sounds",
        "step_sounds": "controller.animation.tsu_morph.step_sounds",
        "idle_sounds": "animation.tsu_morph.idle_sounds"
      },
      "sound_effects": {
        "step": "mob.frog.step",
        "hurt": "mob.frog.hurt",
        "idle": "mob.frog.ambient"
      },
      "scripts": {
        "initialize": [
          "v.attack_time = 0;",
          "v.step_interval = 0.1;"
        ],
        "pre_animation": [
          "v.attack_time = math.lerp(v.attack_time, q.player_level == 5678, q.delta_time * 3);",
          "v.is_jump_goal_jumping = q.is_jumping;",
          "v.display_fp = c.is_first_person && !q.is_in_ui && q.is_local_player;",
          "variable.moving = query.ground_speed > 0 || query.vertical_speed > 0;"
        ],
        "animate": [
          "general",
          "look_at_target",
          "attack_controller",
          {
            "croak": "q.is_sneaking"
          },
          "hurt_sounds",
          "step_sounds",
          "idle_sounds"
        ]
      },
      "render_controllers": [
        {
          "controller.render.tsu_morph.default": "!v.display_fp"
        }
      ]
    }
  }
}