.data_start

    .export trackedBone

    __refl_const_intnl_udonTypeID: %SystemInt64, null
    __refl_const_intnl_udonTypeName: %SystemString, null
    trackedBone: %UnityEngineHumanBodyBones, null
    isInEditor: %SystemBoolean, null
    playerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_this_intnl_UnityEngineTransform: %UnityEngineTransform, this
    __0_const_intnl_SystemObject: %SystemObject, null
    __0_const_intnl_SystemString: %SystemString, null
    __0_const_intnl_SystemUInt32: %SystemUInt32, null
    __0_const_intnl_VRCSDKBaseVRCPlayerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_intnl_UnityEngineQuaternion: %UnityEngineQuaternion, null
    __0_intnl_returnTarget_UInt32: %SystemUInt32, null
    __0_intnl_UnityEngineVector3: %UnityEngineVector3, null

.data_end

        
         #  using UnityEngine;
        
         #  using VRC.SDK3.Components;
        
         #  using VRC.SDKBase;
        
         #  using VRC.Udon;
        
         #  namespace UdonSharp.Examples.Utilities
        
         #  [AddComponentMenu("Udon Sharp/Utilities/Bone Follower")]
        
         #  public class BoneFollower : UdonSharpBehaviour
.code_start
        
         #  public HumanBodyBones trackedBone;
        
         #  VRCPlayerApi playerApi;
        
         #  bool isInEditor;
        
         #  void Start()
    .export _start
        
    _start:
        
        PUSH, __0_const_intnl_SystemUInt32
        
         #  {
        
         #  playerApi = Networking.LocalPlayer;
        PUSH, playerApi
        EXTERN, "VRCSDKBaseNetworking.__get_LocalPlayer__VRCSDKBaseVRCPlayerApi"
        
         #  isInEditor = playerApi == null;
        PUSH, playerApi
        PUSH, __0_const_intnl_VRCSDKBaseVRCPlayerApi
        PUSH, isInEditor
        EXTERN, "SystemObject.__op_Equality__SystemObject_SystemObject__SystemBoolean"
        PUSH, __0_intnl_returnTarget_UInt32 # Function epilogue
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
        
         #  void Update()
    .export _update
        
    _update:
        
        PUSH, __0_const_intnl_SystemUInt32
        
         #  {
        
         #  if (isInEditor)
        PUSH, isInEditor
        JUMP_IF_FALSE, 0x00000078
        
         #  return;
        PUSH, __0_intnl_returnTarget_UInt32 # Explicit return sequence
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
         #  transform.SetPositionAndRotation(playerApi.GetBonePosition(trackedBone), playerApi.GetBoneRotation(trackedBone));
        PUSH, playerApi
        PUSH, trackedBone
        PUSH, __0_intnl_UnityEngineVector3
        EXTERN, "VRCSDKBaseVRCPlayerApi.__GetBonePosition__UnityEngineHumanBodyBones__UnityEngineVector3"
        PUSH, playerApi
        PUSH, trackedBone
        PUSH, __0_intnl_UnityEngineQuaternion
        EXTERN, "VRCSDKBaseVRCPlayerApi.__GetBoneRotation__UnityEngineHumanBodyBones__UnityEngineQuaternion"
        PUSH, __0_this_intnl_UnityEngineTransform
        PUSH, __0_intnl_UnityEngineVector3
        PUSH, __0_intnl_UnityEngineQuaternion
        EXTERN, "UnityEngineTransform.__SetPositionAndRotation__UnityEngineVector3_UnityEngineQuaternion__SystemVoid"
        PUSH, __0_intnl_returnTarget_UInt32 # Function epilogue
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
.code_end
