.data_start

    .export jumpHeight
    .export runSpeed
    .export walkSpeed
    .export strafeSpeed
    .export gravity
    .export useLegacyLocomotion

    __refl_const_intnl_udonTypeID: %SystemInt64, null
    __refl_const_intnl_udonTypeName: %SystemString, null
    useLegacyLocomotion: %SystemBoolean, null
    gravity: %SystemSingle, null
    jumpHeight: %SystemSingle, null
    runSpeed: %SystemSingle, null
    strafeSpeed: %SystemSingle, null
    walkSpeed: %SystemSingle, null
    __0_this_intnl_UdonSharpExamplesUtilitiesPlayerModSetter: %VRCUdonUdonBehaviour, this
    __0_playerApi_VRCPlayerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_const_intnl_SystemObject: %SystemObject, null
    __0_const_intnl_SystemString: %SystemString, null
    __1_const_intnl_SystemString: %SystemString, null
    __0_const_intnl_SystemUInt32: %SystemUInt32, null
    __0_const_intnl_VRCSDKBaseVRCPlayerApi: %VRCSDKBaseVRCPlayerApi, null
    __0_intnl_SystemBoolean: %SystemBoolean, null
    __0_intnl_returnTarget_UInt32: %SystemUInt32, null
    __0_intnl_VRCSDKBaseVRCPlayerApi: %VRCSDKBaseVRCPlayerApi, null

.data_end

        
         #  using UnityEngine;
        
         #  using UdonSharp;
        
         #  using VRC.SDKBase;
        
         #  namespace UdonSharp.Examples.Utilities
        
         #  [AddComponentMenu("Udon Sharp/Utilities/Player Mod Setter")]
        
         #  public class PlayerModSetter : UdonSharpBehaviour
.code_start
        
         #  public float jumpHeight = 3f;
        
         #  public float runSpeed = 4f;
        
         #  public float walkSpeed = 2f;
        
         #  public float strafeSpeed = 2f;
        
         #  public float gravity = 1f;
        
         #  [Tooltip("Enables legacy locomotion which allows stutter stepping and wall climbing")]
        
         #  void Start()
    .export _start
        
    _start:
        
        PUSH, __0_const_intnl_SystemUInt32
        
         #  {
        
         #  var playerApi = Networking.LocalPlayer;
        PUSH, __0_intnl_VRCSDKBaseVRCPlayerApi
        EXTERN, "VRCSDKBaseNetworking.__get_LocalPlayer__VRCSDKBaseVRCPlayerApi"
        PUSH, __0_intnl_VRCSDKBaseVRCPlayerApi
        PUSH, __0_playerApi_VRCPlayerApi
        COPY
        
         #  if (playerApi != null)
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, __0_const_intnl_VRCSDKBaseVRCPlayerApi
        PUSH, __0_intnl_SystemBoolean
        EXTERN, "SystemObject.__op_Inequality__SystemObject_SystemObject__SystemBoolean"
        PUSH, __0_intnl_SystemBoolean
        JUMP_IF_FALSE, 0x000000F4
        
         #  {
        
         #  playerApi.SetJumpImpulse(jumpHeight);
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, jumpHeight
        EXTERN, "VRCSDKBaseVRCPlayerApi.__SetJumpImpulse__SystemSingle__SystemVoid"
        
         #  playerApi.SetRunSpeed(runSpeed);
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, runSpeed
        EXTERN, "VRCSDKBaseVRCPlayerApi.__SetRunSpeed__SystemSingle__SystemVoid"
        
         #  playerApi.SetWalkSpeed(walkSpeed);
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, walkSpeed
        EXTERN, "VRCSDKBaseVRCPlayerApi.__SetWalkSpeed__SystemSingle__SystemVoid"
        
         #  playerApi.SetStrafeSpeed(strafeSpeed);
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, strafeSpeed
        EXTERN, "VRCSDKBaseVRCPlayerApi.__SetStrafeSpeed__SystemSingle__SystemVoid"
        
         #  playerApi.SetGravityStrength(gravity);
        PUSH, __0_playerApi_VRCPlayerApi
        PUSH, gravity
        EXTERN, "VRCSDKBaseVRCPlayerApi.__SetGravityStrength__SystemSingle__SystemVoid"
        
         #  if (useLegacyLocomotion)
        PUSH, useLegacyLocomotion
        JUMP_IF_FALSE, 0x000000F4
        
         #  playerApi.UseLegacyLocomotion();
        PUSH, __0_playerApi_VRCPlayerApi
        EXTERN, "VRCSDKBaseVRCPlayerApi.__UseLegacyLocomotion__SystemVoid"
        
         #  Destroy(this);
        PUSH, __0_this_intnl_UdonSharpExamplesUtilitiesPlayerModSetter
        EXTERN, "UnityEngineObject.__Destroy__UnityEngineObject__SystemVoid"
        PUSH, __0_intnl_returnTarget_UInt32 # Function epilogue
        COPY
        JUMP_INDIRECT, __0_intnl_returnTarget_UInt32
        
.code_end
