{
 "pack": 1,
 "id": "c4c:beh:stand_up",
 "type": "behaviour",
 "version": "1.0.0",
 "name": "Stand up",
 "description": "Stands up from sitting, leaning forward over the feet and pushing up: from the ground, a chair or a ledge (the on setting: 0, 1 or 2).",
 "author": {
  "id": "c4c",
  "name": "Crafts4Class"
 },
 "license": "c4c-free",
 "remixable": true,
 "derived_from": [],
 "preview": {
  "moves": [
   "stand_up"
  ],
  "seconds": 3
 },
 "content_hash": "sha256:916636588ca8b06c3d69ee803ffbc1c246e7a275b55270dafba7f03f5e74174c",
 "content": {
  "v": 1,
  "kind": "behaviour",
  "name": "stand_up",
  "params": {
   "h": 540,
   "leg": 0.24,
   "on": 0
  },
  "scripts": [
   {
    "hat": {
     "on": "start"
    },
    "body": [
     {
      "op": "view",
      "to": "side"
     },
     {
      "op": "if",
      "cond": "=on == 0",
      "body": [
       {
        "op": "set",
        "to": {
         "part:hips": 20,
         "part:leg:-1": 85,
         "part:leg:1": 85,
         "part:shin:-1": 75,
         "part:shin:1": 75,
         "part:foot:-1": -30,
         "part:foot:1": -30,
         "dx": "=-h*leg/2*(sin((105)*pi/180) + sin(((105) - (75))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((105)*pi/180) - cos(((105) - (75))*pi/180))",
         "part:torso": -14,
         "part:arm:-1": 34,
         "part:arm:1": 34,
         "part:forearm:-1": 30,
         "part:forearm:1": 30
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=on == 1",
      "body": [
       {
        "op": "set",
        "to": {
         "part:hips": 24,
         "part:leg:-1": 64,
         "part:leg:1": 64,
         "part:shin:-1": 88,
         "part:shin:1": 88,
         "part:foot:-1": 0,
         "part:foot:1": 0,
         "dx": "=-h*leg/2*(sin((88)*pi/180) + sin(((88) - (88))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((88)*pi/180) - cos(((88) - (88))*pi/180))",
         "part:torso": -22,
         "part:arm:-1": 30,
         "part:arm:1": 30,
         "part:forearm:-1": 40,
         "part:forearm:1": 40
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=on == 2",
      "body": [
       {
        "op": "set",
        "to": {
         "part:hips": 24,
         "part:leg:-1": 64,
         "part:leg:1": 64,
         "part:shin:-1": 88,
         "part:shin:1": 88,
         "part:foot:-1": 0,
         "part:foot:1": 0,
         "dx": "=-h*leg/2*(sin((88)*pi/180) + sin(((88) - (88))*pi/180))",
         "dy": 0,
         "part:torso": -22,
         "part:arm:-1": 22,
         "part:arm:1": 22,
         "part:forearm:-1": 30,
         "part:forearm:1": 30
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=on == 0",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:hips": 8,
            "part:leg:-1": 16,
            "part:leg:1": 16,
            "part:shin:-1": 40,
            "part:shin:1": 40,
            "part:foot:-1": 16,
            "part:foot:1": 16,
            "part:torso": -20,
            "part:arm:-1": 45,
            "part:arm:1": 45,
            "part:forearm:-1": 10,
            "part:forearm:1": 10
           },
           "over": 0.5,
           "ease": "smooth"
          }
         ],
         [
          {
           "op": "set",
           "to": {
            "dx": 0,
            "dy": 0
           }
          },
          {
           "op": "for",
           "s": 0.5,
           "body": [
            {
             "op": "drive",
             "ch": "dy",
             "value": "=h*leg/2*(2 - cos(((105 + -81*smoothstep(min(local/0.5, 1))))*pi/180) - cos((((105 + -81*smoothstep(min(local/0.5, 1)))) - ((75 + -35*smoothstep(min(local/0.5, 1)))))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg/2*(sin(((105 + -81*smoothstep(min(local/0.5, 1))))*pi/180) + sin((((105 + -81*smoothstep(min(local/0.5, 1)))) - ((75 + -35*smoothstep(min(local/0.5, 1)))))*pi/180))"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg/2*(sin((24)*pi/180) + sin(((24) - (40))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((24)*pi/180) - cos(((24) - (40))*pi/180))"
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=on == 1",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:hips": 8,
            "part:leg:-1": 16,
            "part:leg:1": 16,
            "part:shin:-1": 40,
            "part:shin:1": 40,
            "part:foot:-1": 16,
            "part:foot:1": 16,
            "part:torso": -20,
            "part:arm:-1": 45,
            "part:arm:1": 45,
            "part:forearm:-1": 10,
            "part:forearm:1": 10
           },
           "over": 0.5,
           "ease": "smooth"
          }
         ],
         [
          {
           "op": "set",
           "to": {
            "dx": 0,
            "dy": 0
           }
          },
          {
           "op": "for",
           "s": 0.5,
           "body": [
            {
             "op": "drive",
             "ch": "dy",
             "value": "=h*leg/2*(2 - cos(((88 + -64*smoothstep(min(local/0.5, 1))))*pi/180) - cos((((88 + -64*smoothstep(min(local/0.5, 1)))) - ((88 + -48*smoothstep(min(local/0.5, 1)))))*pi/180))"
            },
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg/2*(sin(((88 + -64*smoothstep(min(local/0.5, 1))))*pi/180) + sin((((88 + -64*smoothstep(min(local/0.5, 1)))) - ((88 + -48*smoothstep(min(local/0.5, 1)))))*pi/180))"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg/2*(sin((24)*pi/180) + sin(((24) - (40))*pi/180))",
         "dy": "=h*leg/2*(2 - cos((24)*pi/180) - cos(((24) - (40))*pi/180))"
        }
       }
      ]
     },
     {
      "op": "if",
      "cond": "=on == 2",
      "body": [
       {
        "op": "together",
        "branches": [
         [
          {
           "op": "ramp",
           "to": {
            "part:hips": 8,
            "part:leg:-1": 16,
            "part:leg:1": 16,
            "part:shin:-1": 40,
            "part:shin:1": 40,
            "part:foot:-1": 16,
            "part:foot:1": 16,
            "part:torso": -20,
            "part:arm:-1": 45,
            "part:arm:1": 45,
            "part:forearm:-1": 10,
            "part:forearm:1": 10
           },
           "over": 0.5,
           "ease": "smooth"
          }
         ],
         [
          {
           "op": "set",
           "to": {
            "dx": 0,
            "dy": 0
           }
          },
          {
           "op": "for",
           "s": 0.5,
           "body": [
            {
             "op": "drive",
             "ch": "dx",
             "value": "=-h*leg/2*(sin(((88 + -64*smoothstep(min(local/0.5, 1))))*pi/180) + sin((((88 + -64*smoothstep(min(local/0.5, 1)))) - ((88 + -48*smoothstep(min(local/0.5, 1)))))*pi/180))"
            }
           ]
          }
         ]
        ]
       },
       {
        "op": "set",
        "to": {
         "dx": "=-h*leg/2*(sin((24)*pi/180) + sin(((24) - (40))*pi/180))",
         "dy": 0
        }
       }
      ]
     },
     {
      "op": "together",
      "branches": [
       [
        {
         "op": "ramp",
         "to": {
          "part:hips": 0,
          "part:leg:-1": 0,
          "part:leg:1": 0,
          "part:shin:-1": 0,
          "part:shin:1": 0,
          "part:foot:-1": 0,
          "part:foot:1": 0,
          "part:torso": 0,
          "part:arm:-1": 0,
          "part:arm:1": 0,
          "part:forearm:-1": 0,
          "part:forearm:1": 0
         },
         "over": 0.35,
         "ease": "out"
        }
       ],
       [
        {
         "op": "set",
         "to": {
          "dx": 0,
          "dy": 0
         }
        },
        {
         "op": "for",
         "s": 0.35,
         "body": [
          {
           "op": "drive",
           "ch": "dy",
           "value": "=h*leg/2*(2 - cos(((24 + -24*sin((min(local/0.35, 1))*pi/2)))*pi/180) - cos((((24 + -24*sin((min(local/0.35, 1))*pi/2))) - ((40 + -40*sin((min(local/0.35, 1))*pi/2))))*pi/180))"
          },
          {
           "op": "drive",
           "ch": "dx",
           "value": "=-h*leg/2*(sin(((24 + -24*sin((min(local/0.35, 1))*pi/2)))*pi/180) + sin((((24 + -24*sin((min(local/0.35, 1))*pi/2))) - ((40 + -40*sin((min(local/0.35, 1))*pi/2))))*pi/180))"
          }
         ]
        }
       ]
      ]
     },
     {
      "op": "set",
      "to": {
       "dx": "=-h*leg/2*(sin((0)*pi/180) + sin(((0) - (0))*pi/180))",
       "dy": "=h*leg/2*(2 - cos((0)*pi/180) - cos(((0) - (0))*pi/180))"
      }
     }
    ]
   }
  ]
 }
}
