// Token: 0x060056F0 RID: 22256 RVA: 0x001DED30 File Offset: 0x001DD130 public override void PerformCalibration(Animator avatarAnim, bool includeHip, bool includeFeet) { if (avatarAnim == null) { return; } if (!avatarAnim.isHuman) { return; } if (includeHip) { this.hip = this.ActivateClosestTracker(avatarAnim, HumanBodyBones.Hips); } if (includeFeet) { this.leftFoot = this.ActivateClosestTracker(avatarAnim, HumanBodyBones.LeftFoot); this.rightFoot = this.ActivateClosestTracker(avatarAnim, HumanBodyBones.RightFoot); } if (avatarAnim.transform.parent != null) { VRCAvatarManager component = avatarAnim.transform.parent.GetComponent <VRCAvatarManager>(); if (component != null) { this.calibratedAvatarId = component.CurrentAvatar.id; } } }
public void NoClip() { VRC.Player cplayer = VRC.PlayerManager.GetCurrentPlayer(); VRCPlayer vrcPlayer = cplayer.vrcPlayer; ApiAvatar apiAvatar = cplayer.GetApiAvatar(); APIUser apiuser = cplayer.GetAPIUser(); VRCAvatarManager vrcavatarManager = vrcPlayer.GetVRCAvatarManager(); Collider col; if (collisiont) { Console.WriteLine("collision off "); col = PlayerManager.GetCurrentPlayer().gameObject.GetComponent <Collider>(); col.gameObject.SetActive(false); } else { Console.WriteLine("collision on "); col = PlayerManager.GetCurrentPlayer().gameObject.GetComponent <Collider>(); col.gameObject.SetActive(true); } }
// Token: 0x06005AB9 RID: 23225 RVA: 0x001F9F8C File Offset: 0x001F838C public void ApplySeatedAnimation(VRC.Player player) { RuntimeAnimatorController runtimeAnimatorController = this.animatorController; VRCAvatarManager componentInChildren = player.GetComponentInChildren <VRCAvatarManager>(); if (runtimeAnimatorController != null) { if (runtimeAnimatorController.name == "SitStation") { runtimeAnimatorController = componentInChildren.GetSitAnimController(); } if (runtimeAnimatorController == null) { Debug.LogError("SitAnimController on " + player.name + " is not available.", this); } else { this.AttachAnimatorControllerTo(player, runtimeAnimatorController); } } else { runtimeAnimatorController = componentInChildren.GetSitAnimController(); if (runtimeAnimatorController == null) { Debug.LogError("SitAnimController on " + player.name + " is not available.", this); } else { this.AttachAnimatorControllerTo(player, runtimeAnimatorController); } } }
// Token: 0x060058D9 RID: 22745 RVA: 0x001EC620 File Offset: 0x001EAA20 private void Start() { VRC_EventHandler componentInParent = base.GetComponentInParent <VRC_EventHandler>(); if (componentInParent != null) { for (int i = 0; i < componentInParent.Events.Count; i++) { if (componentInParent.Events[i].Name == "Use" && componentInParent.Events[i].ParameterObject == null) { componentInParent.Events[i].ParameterObject = base.gameObject; } } } this.calibrator = base.GetComponentInParent <VRC_AvatarCalibrator>(); this.switcher = base.GetComponent <VRCAvatarManager>(); VRCAvatarManager vrcavatarManager = this.switcher; vrcavatarManager.OnAvatarCreated = (VRCAvatarManager.AvatarCreationCallback)Delegate.Combine(vrcavatarManager.OnAvatarCreated, new VRCAvatarManager.AvatarCreationCallback(this.AvatarCreated)); this.vrikCalib = base.GetComponent <VRCVrIkCalibrator>(); if (!string.IsNullOrEmpty(this.calibrator.blueprintId)) { ApiAvatar.Fetch(this.calibrator.blueprintId, delegate(ApiAvatar bp) { this.avatar = bp; this.switcher.SwitchAvatar(this.avatar, this.calibrator.scale, null); Tools.SetLayerRecursively(base.gameObject, base.transform.parent.gameObject.layer, -1); }, delegate(string message) { this.switcher.SwitchToErrorAvatar(1f); }); } }
public static void OnAvatarInstantiated(VRCAvatarManager player, ApiAvatar avatar, GameObject gameObject) { foreach (EntryBase entry in playerEntries) { entry.OnAvatarInstantiated(player, avatar, gameObject); } localPlayerEntry?.OnAvatarInstantiated(player, avatar, gameObject); }
internal void Start() { this.player = base.GetComponent <VRC.Player>(); if (this.player == null) { return; } VRCAvatarManager vrcavatarManager = this.player.vrcPlayer.HOIHOKEHFGC; }
internal static void OnAvatarInstantiated(VRCAvatarManager manager, ApiAvatar avatar, GameObject gameObject) { if (!manager.field_Private_VRCPlayer_0.prop_Player_0.prop_APIUser_0.IsSelf) { return; } OnAvatarInstantiated(avatar); }
private static void OnAvatarInstantiate(VRCAvatarManager manager, ApiAvatar apiAvatar, GameObject avatar) { if (manager == null || apiAvatar == null || avatar == null) { return; } OnAvatarInstantiated.DelegateSafeInvoke(manager, apiAvatar, avatar); }
public static bool HasCustomExpressions(this VRCAvatarManager manager) { return(manager && manager.field_Private_AvatarPlayableController_0 != null && manager.prop_VRCAvatarDescriptor_0 != null && manager.prop_VRCAvatarDescriptor_0.customExpressions && /* F**k you */ manager.prop_VRCAvatarDescriptor_0.expressionParameters != null && manager.prop_VRCAvatarDescriptor_0.expressionsMenu != null && /* This isn't funny */ manager.prop_VRCAvatarDescriptor_0.expressionsMenu.controls != null && manager.prop_VRCAvatarDescriptor_0.expressionsMenu.controls.Count > 0); }
// Token: 0x060053AD RID: 21421 RVA: 0x001CDD00 File Offset: 0x001CC100 private void ApplyHide(bool hidden) { VRCAvatarManager componentInChildren = base.GetComponentInChildren <VRCAvatarManager>(); if (hidden) { componentInChildren.SwitchToInvisibleAvatar(1f); } else { componentInChildren.SwitchToLastAvatar(1f); } }
public static IEnumerable <AvatarParameter> GetAllAvatarParameters(this VRCAvatarManager manager) { var parameters = manager.field_Private_AvatarPlayableController_0? .field_Private_Dictionary_2_Int32_AvatarParameter_0; if (parameters == null) { yield break; } foreach (var param in parameters) { yield return(param.value); } }
public void RefreshAvatar(VRC.Player sender) { if (this.switcher != null && VRC.Network.IsOwner(sender, this.switcher.gameObject)) { if (this.switcher.profile != null) { this.switcher.profile.transform.position = base.transform.position + new Vector3(0f, 2f, 0f); } VRCAvatarManager vrcavatarManager = this.switcher; vrcavatarManager.OnAvatarCreated = (VRCAvatarManager.AvatarCreationCallback)Delegate.Combine(vrcavatarManager.OnAvatarCreated, new VRCAvatarManager.AvatarCreationCallback(this.AvatarCreated)); Debug.Log("Refreshing avatar w/ scale: " + this.pedestal.scale); this.switcher.SwitchAvatar(this.avatar, this.pedestal.scale, null); Tools.SetLayerRecursively(base.gameObject, base.transform.parent.gameObject.layer, -1); } }
// Token: 0x06005A7F RID: 23167 RVA: 0x001F8380 File Offset: 0x001F6780 private void Awake() { this.animationController = base.GetComponentInChildren <VRC_AnimationController>(); this.animControlManager = base.GetComponentInChildren <AnimatorControllerManager>(); this.namePlateColor = this.defaultNamePlateColor; this.namePlateEnable = true; this.avatarSwitcher = base.GetComponentInChildren <VRCAvatarManager>(); VRCAvatarManager vrcavatarManager = this.avatarSwitcher; vrcavatarManager.OnAvatarCreated = (VRCAvatarManager.AvatarCreationCallback)Delegate.Combine(vrcavatarManager.OnAvatarCreated, new VRCAvatarManager.AvatarCreationCallback(this.AvatarIsReady)); this.cameraMount = base.transform.Find("CameraMount"); this.speakSrc = this.cameraMount.GetComponentInChildren <AudioSource>(); this.lipSync = this.cameraMount.GetComponentInChildren <OVRLipSyncContext>(); this.emojiGen = this.cameraMount.GetComponentInChildren <EmojiGenerator>(); base.gameObject.AddComponent <VRC_NpcApi>(); }
public static void ApplyParameters(VRCAvatarManager manager) { var api_avatar = manager?.prop_ApiAvatar_0; if (api_avatar == null) { return; } /* Look up store */ var key = api_avatar.id; if (!settings.ContainsKey(key)) { return; } var config = settings[key]; /* Check version */ if (config.version != api_avatar.version) { MelonLogger.Msg($"Avatar {api_avatar.name} version missmatch ({config.version} != {api_avatar.version}). Removing"); settings.Remove(key); return; } MelonLogger.Msg($"Applying avatar state to {api_avatar.name}"); /* Apply parameters */ if (config.parameters != null) { foreach (var parameter in manager.GetAvatarParameters()) { config.parameters[parameter.field_Private_String_0].Apply(parameter); } } /* Apply Meshes */ if (config.renderers != null) { foreach (var element in Enumerable.Zip(config.renderers, manager.GetAvatarRenderers(), (state, renderer) => new { state, renderer })) { element.renderer.gameObject.active = element.renderer.enabled = element.state; } } }
private static void OnAvatarChanged(VRCAvatarManager manager, GameObject gameObject) { int photonId = manager.field_Private_VRCPlayer_0.prop_PlayerNet_0.prop_PhotonView_0.field_Private_Int32_0; if (!players.ContainsKey(photonId)) { return; } players[photonId].SetAvatar(gameObject); if (filteredPlayers.ContainsKey(photonId)) { RefreshManager.RefreshPlayer(players[photonId], Player.prop_Player_0.transform.position); } else if (Config.IncludeHiddenAvatars.Value && players[photonId].isHidden) { players[photonId].SetInActive(); } }
// Token: 0x060058E0 RID: 22752 RVA: 0x001EC8BC File Offset: 0x001EACBC private void Start() { VRC_EventHandler componentInParent = base.GetComponentInParent <VRC_EventHandler>(); if (componentInParent != null) { for (int i = 0; i < componentInParent.Events.Count; i++) { if (componentInParent.Events[i].Name == "Use" && componentInParent.Events[i].ParameterObject == null) { componentInParent.Events[i].ParameterObject = base.gameObject; } } } this.pedestal = base.GetComponentInParent <VRC_AvatarPedestal>(); this.switcher = base.GetComponent <VRCAvatarManager>(); VRCAvatarManager vrcavatarManager = this.switcher; vrcavatarManager.OnAvatarCreated = (VRCAvatarManager.AvatarCreationCallback)Delegate.Combine(vrcavatarManager.OnAvatarCreated, new VRCAvatarManager.AvatarCreationCallback(this.AvatarCreated)); this.refreshId(); }
public override void OnAvatarInstantiated(VRCAvatarManager manager, ApiAvatar avatar, GameObject gameObject) { apiUser = player.prop_APIUser_0; userId = apiUser.id; if (manager.field_Private_VRCPlayer_0.prop_Player_0.prop_APIUser_0?.id != userId) { return; } perf = manager.prop_AvatarPerformanceStats_0.field_Private_ArrayOf_PerformanceRating_0[(int)AvatarPerformanceCategory.Overall]; perfString = "<color=#" + ColorUtility.ToHtmlStringRGB(VRCUiAvatarStatsPanel.Method_Private_Static_Color_AvatarPerformanceCategory_PerformanceRating_0(AvatarPerformanceCategory.Overall, perf)) + ">" + PlayerUtils.ParsePerformanceText(perf) + "</color>"; if (player.prop_PlayerNet_0 != null) { UpdateEntry(player.prop_PlayerNet_0, this, true); } if (EntrySortManager.IsSortTypeInUse(EntrySortManager.SortType.AvatarPerf)) { EntrySortManager.SortPlayer(playerLeftPairEntry); } }
private static void AwakePatch(VRCAvatarManager __instance) { VRCPlayer vrcPlayer = VRCPlayer.field_Internal_Static_VRCPlayer_0; if (vrcPlayer == null) { return; } VRCAvatarManager vrcAvatarManager = vrcPlayer.prop_VRCAvatarManager_0; if ((vrcAvatarManager == null) || (vrcAvatarManager != __instance)) { return; } __instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_0 = ( (__instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_0 == null) ? new Action <GameObject, VRC.SDKBase.VRC_AvatarDescriptor, bool>(OnAvatarInstantiated) : Il2CppSystem.Delegate.Combine(__instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_0, (VRCAvatarManager.MulticastDelegateNPublicSealedVoGaVRBoUnique) new Action <GameObject, VRC.SDKBase.VRC_AvatarDescriptor, bool>(OnAvatarInstantiated)).Cast <VRCAvatarManager.MulticastDelegateNPublicSealedVoGaVRBoUnique>()); __instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_1 = ( (__instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_1 == null) ? new Action <GameObject, VRC.SDKBase.VRC_AvatarDescriptor, bool>(OnAvatarInstantiated) : Il2CppSystem.Delegate.Combine(__instance.field_Internal_MulticastDelegateNPublicSealedVoGaVRBoUnique_1, (VRCAvatarManager.MulticastDelegateNPublicSealedVoGaVRBoUnique) new Action <GameObject, VRC.SDKBase.VRC_AvatarDescriptor, bool>(OnAvatarInstantiated)).Cast <VRCAvatarManager.MulticastDelegateNPublicSealedVoGaVRBoUnique>()); }
public static void OnAvatarInstantiated(VRCAvatarManager player, ApiAvatar avatar, GameObject gameObject) { var avatarObj = player?.prop_GameObject_0; var cam = avatarObj?.transform?.root?.Find("UserCameraIndicator")?.gameObject; var username = avatarObj?.transform?.root?.GetComponentInChildren <VRC.Player>()?.field_Private_APIUser_0.displayName; if (avatarObj is null || cam is null || username is null) { MelonLogger.Msg($"avatarObj is null: {avatarObj is null}, cam is null: {cam is null}, username is null: {username is null}"); return; } //MelonLogger.Msg($"Added Camera Indicator from: {username}"); if (camList.ContainsKey(username)) { camList[username] = cam; } else { camList.Add(username, cam); } ToggleCam(username); }
public static void StoreParameters(VRCAvatarManager manager) { var api_avatar = manager?.prop_ApiAvatar_0; if (api_avatar == null) { return; } MelonLogger.Msg($"Storing avatar state for {api_avatar.name}"); var config = new AvatarSettings { name = api_avatar.name, version = api_avatar.version, parameters = manager.GetAvatarParameters()?.ToDictionary(o => o.field_Private_String_0, o => new Parameter(o)), renderers = manager.GetAvatarRenderers().Select(o => o.gameObject.active && o.enabled).ToList(), }; var key = api_avatar.id; if (settings.ContainsKey(key)) { settings[key] = config; } else { settings.Add(key, config); } /* Prevent override of changed parameters */ foreach (var parameter in manager.GetAvatarParameters()) { parameter.Lock(); } }
public AvatarManagerCookie(VRCAvatarManager avatarManager) { myLastManager = CurrentManager; CurrentManager = avatarManager; }
private static void CleanAvatar(VRCAvatarManager avatarManager, GameObject go) { if (!AdvancedSafetySettings.AvatarFilteringEnabled) { return; } if (AdvancedSafetySettings.AvatarFilteringOnlyInPublic && RoomManager.field_Internal_Static_ApiWorldInstance_0?.InstanceType != ApiWorldInstance.AccessType.Public) { return; } var vrcPlayer = avatarManager.field_Private_VRCPlayer_0; if (vrcPlayer == null) { return; } var userId = vrcPlayer.prop_Player_0?.prop_APIUser_0?.id ?? ""; if (!AdvancedSafetySettings.IncludeFriends && APIUser.IsFriendsWith(userId)) { return; } if (AdvancedSafetySettings.AbideByShowAvatar && IsAvatarExplicitlyShown(userId)) { return; } var start = Stopwatch.StartNew(); var scannedObjects = 0; var destroyedObjects = 0; var seenTransforms = 0; var seenPolys = 0; var seenMaterials = 0; var seenAudioSources = 0; var seenConstraints = 0; var seenClothVertices = 0; var seenColliders = 0; var seenRigidbodies = 0; var seenAnimators = 0; var seenLights = 0; var seenComponents = 0; var seenParticles = 0; var seenMeshParticleVertices = 0; var animator = go.GetComponent <Animator>(); var componentList = new Il2CppSystem.Collections.Generic.List <Component>(); var audioSourcesList = new List <AudioSource>(); var skinnedRendererListList = new List <SkinnedMeshRenderer>(); void Bfs(GameObjectWithPriorityData objWithPriority) { var obj = objWithPriority.GameObject; if (obj == null) { return; } scannedObjects++; if (animator?.IsBoneTransform(obj.transform) != true && seenTransforms++ >= AdvancedSafetySettings.MaxTransforms) { Object.DestroyImmediate(obj, true); destroyedObjects++; return; } if (objWithPriority.Depth >= AdvancedSafetySettings.MaxDepth) { Object.DestroyImmediate(obj, true); destroyedObjects++; return; } if (!AdvancedSafetySettings.AllowUiLayer && (obj.layer == 12 || obj.layer == 5)) { obj.layer = 9; } obj.GetComponents(componentList); foreach (var component in componentList) { if (component == null) { continue; } component.TryCast <AudioSource>()?.VisitAudioSource(ref scannedObjects, ref destroyedObjects, ref seenAudioSources, obj, audioSourcesList, objWithPriority.IsActiveInHierarchy); component.TryCast <IConstraint>()?.VisitConstraint(ref scannedObjects, ref destroyedObjects, ref seenConstraints, obj); component.TryCast <Cloth>()?.VisitCloth(ref scannedObjects, ref destroyedObjects, ref seenClothVertices, obj); component.TryCast <Rigidbody>()?.VisitGeneric(ref scannedObjects, ref destroyedObjects, ref seenRigidbodies, AdvancedSafetySettings.MaxRigidBodies); component.TryCast <Collider>()?.VisitCollider(ref scannedObjects, ref destroyedObjects, ref seenColliders, obj); component.TryCast <Animator>()?.VisitGeneric(ref scannedObjects, ref destroyedObjects, ref seenAnimators, AdvancedSafetySettings.MaxAnimators); component.TryCast <Light>()?.VisitGeneric(ref scannedObjects, ref destroyedObjects, ref seenLights, AdvancedSafetySettings.MaxLights); component.TryCast <Renderer>()?.VisitRenderer(ref scannedObjects, ref destroyedObjects, ref seenPolys, ref seenMaterials, obj, skinnedRendererListList); component.TryCast <ParticleSystem>()?.VisitParticleSystem(component.GetComponent <ParticleSystemRenderer>(), ref scannedObjects, ref destroyedObjects, ref seenParticles, ref seenMeshParticleVertices, obj); if (ReferenceEquals(component.TryCast <Transform>(), null)) { component.VisitGeneric(ref scannedObjects, ref destroyedObjects, ref seenComponents, AdvancedSafetySettings.MaxComponents); } } foreach (var child in obj.transform) { ourBfsQueue.Enqueue(new GameObjectWithPriorityData(child.Cast <Transform>().gameObject, objWithPriority.Depth + 1, objWithPriority.IsActiveInHierarchy)); } } Bfs(new GameObjectWithPriorityData(go, 0, true, true)); while (ourBfsQueue.Count > 0) { Bfs(ourBfsQueue.Dequeue()); } ComponentAdjustment.PostprocessSkinnedRenderers(skinnedRendererListList); if (!AdvancedSafetySettings.AllowSpawnSounds) { MelonCoroutines.Start(CheckSpawnSounds(go, audioSourcesList)); } if (MelonDebug.IsEnabled() || destroyedObjects > 100) { MelonLogger.Msg($"Cleaned avatar ({avatarManager.prop_ApiAvatar_0?.name}) used by \"{vrcPlayer.prop_VRCPlayerApi_0?.displayName}\" in {start.ElapsedMilliseconds}ms, scanned {scannedObjects} things, destroyed {destroyedObjects} things"); } }
private static void OnAvatarChange(VRCAvatarManager __instance) { OnAvatarChanged?.DelegateSafeInvoke(__instance, __instance.prop_GameObject_0); }
public static List <AvatarParameter> GetAvatarParameters(this VRCAvatarManager manager) => FilterDefaultParameters(manager.GetAllAvatarParameters());
public void Dispose() { ourApiAvatar = null; ourAvatarManager = null; ourInSwitch = false; }
public static IEnumerable <Renderer> GetAvatarRenderers(this VRCAvatarManager manager) { return(manager.field_Private_ArrayOf_Renderer_0); }
public void Dispose() { CurrentManager = myLastManager; }
public override void OnUpdate() { if (m_localPlayer == null) { VRC.Player player = VRC.Player.prop_Player_0; if (player != null) // early init I guess { m_localPlayer = player; } } if (m_localPlayer == null) { return; // wait until player is ready } var currentInput = VRCInputManager.field_Private_Static_EnumNPublicSealedvaKeMoCoGaViOcViDaWaUnique_0; bool controller = currentInput == InputEnum.Controller; bool vr = currentInput == InputEnum.Oculus || currentInput == InputEnum.Vive; bool desktop = (currentInput == InputEnum.Keyboard || currentInput == InputEnum.Mouse); bool isActiveController = controller && Input.GetKey(KeyCode.JoystickButton5); bool isActiveVr = vr && Input.GetKey((KeyCode)Oculus.LeftThumbstickPress); bool isActiveDesktop = desktop && (Input.GetKey(KeyCode.Mouse4) || Input.GetKey(KeyCode.RightControl)); bool swapSpeedsController = controller && Input.GetKey(KeyCode.JoystickButton9); bool swapSpeedsVr = vr && Input.GetKey((KeyCode)Oculus.AButton); bool swapSpeedsKeyboard = desktop && Input.GetKey(KeyCode.LeftShift); bool isActive = isActiveController || isActiveVr || isActiveDesktop; bool swapSpeeds = swapSpeedsKeyboard || swapSpeedsController || swapSpeedsVr; if (isActive && Time.time - m_lastTime > 1f) { if (m_airbreakActive) { // VRCUiManager.QueueHudMessage equivalent // still same bug as years ago where two messages need to be queued for the first one to be displayed immediately VRCUiManager.prop_VRCUiManager_0.field_Private_List_1_String_0.Add("Noclip OFF"); VRCUiManager.prop_VRCUiManager_0.field_Private_List_1_String_0.Add(""); DisableAirbreak(); } else { VRCUiManager.prop_VRCUiManager_0.field_Private_List_1_String_0.Add("Noclip ON"); VRCUiManager.prop_VRCUiManager_0.field_Private_List_1_String_0.Add(""); SetupAirbreak(); } m_airbreakActive = !m_airbreakActive; m_lastTime = Time.time; } if (swapSpeeds && m_airbreakActive && Time.time - m_lastTime > 0.2f) { m_speedIndex += 1; if (m_speedIndex > m_speeds.Count() - 1) { m_speedIndex = 0; } m_currentSpeed = m_speeds[m_speedIndex]; m_lastTime = Time.time; } // get default fallback Object[] ctrls = Object.FindObjectsOfType(Il2CppType.Of <VRCVrCameraOculus>()); Transform trans = null; if (ctrls.Length > 0) { trans = ctrls[0].TryCast <VRCVrCameraOculus>().transform; } // alright so // let's start by getting our current vrcPlayer VRCPlayer vrcPlayer = m_localPlayer.field_Internal_VRCPlayer_0; Animator animator = null; if (vrcPlayer == null) { animator = null; } else { // let's get our avatar manager VRCAvatarManager vrcAvatarManager = vrcPlayer.prop_VRCAvatarManager_0; if (vrcAvatarManager == null) { animator = null; } else { // current avatar GameObject currentAvatar = vrcAvatarManager.prop_GameObject_0; animator = ((currentAvatar != null) ? currentAvatar.GetComponent(Il2CppType.Of <Animator>())?.TryCast <Animator>() : null); } } // if the animator is not null at this stage and airbreak is enabled if (animator != null) { // get the head bone Transform tempTrans = animator.GetBoneTransform(HumanBodyBones.Head); // if we're humanoid if (tempTrans != null) { // use the head bone's transform instead of oculus camera trans = tempTrans; } } if (trans == null) { MelonLogger.LogError("not humanoid?"); return; } if (Input.GetKey(KeyCode.W)) { m_position += trans.forward * m_currentSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.A)) { m_position += (trans.right * -1) * m_currentSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.S)) { m_position += (trans.forward * -1) * m_currentSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.D)) { m_position += trans.right * m_currentSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.E)) { m_position += m_localPlayer.transform.up * m_currentSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.Q)) { m_position += (m_localPlayer.transform.up * -1) * m_currentSpeed * Time.deltaTime; } var a = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick, OVRInput.Controller.LTouch); if (a.y != 0.0f) { m_position += trans.forward * m_currentSpeed * Time.deltaTime * a.y; } if (a.x != 0.0f) { m_position += trans.right * m_currentSpeed * Time.deltaTime * a.x; } if (m_airbreakActive) { m_localPlayer.transform.position = m_position; } }
public SwitchAvatarCookie(VRCAvatarManager avatarManager, ApiAvatar apiAvatar) { ourAvatarManager = avatarManager; ourApiAvatar = apiAvatar; ourInSwitch = true; }
private void ESP_RenderObject() { if (m_enabled || m_vrEnabled) { if (!m_styleSetup) { SetupStyle(); m_styleSetup = !m_styleSetup; } foreach (Player p in m_players) { VRCPlayer vrcPlayer = p.vrcPlayer; Animator animator; if (vrcPlayer == null) { animator = null; } else { VRCAvatarManager vrcAvatarManager = vrcPlayer.AvatarManager(); if (vrcAvatarManager == null) { animator = null; } else { GameObject currentAvatar = vrcAvatarManager.currentAvatarObject; animator = ((currentAvatar != null) ? currentAvatar.GetComponent <Animator>() : null); } } if (animator != null) { void DrawBoneEsp(HumanBodyBones bone1, HumanBodyBones bone2) { try { GL.Begin(GL.LINES); m_mat.SetPass(0); GL.Color(GetGroupColour(p)); GL.Vertex(animator.GetBoneTransform(bone1).position); GL.Vertex(animator.GetBoneTransform(bone2).position /* + new Vector3(0, .5f, 0)*/); } catch { } finally { GL.End(); } } /*EspType espType = ConfigFile.Config.Common.EspType; * * if (espType == EspType.Cute) * { * for (int j = 0; j < 56; j++) * { * if (j == 0) * { * continue; * } * * DrawBoneEsp((HumanBodyBones)j - 1, (HumanBodyBones)j); * } * } * else if (espType == EspType.Bone)*/ { // hips to left toes DrawBoneEsp(HumanBodyBones.Hips, HumanBodyBones.LeftUpperLeg); DrawBoneEsp(HumanBodyBones.LeftUpperLeg, HumanBodyBones.LeftLowerLeg); DrawBoneEsp(HumanBodyBones.LeftLowerLeg, HumanBodyBones.LeftFoot); DrawBoneEsp(HumanBodyBones.LeftFoot, HumanBodyBones.LeftToes); // hips to right toes DrawBoneEsp(HumanBodyBones.Hips, HumanBodyBones.RightUpperLeg); DrawBoneEsp(HumanBodyBones.RightUpperLeg, HumanBodyBones.RightLowerLeg); DrawBoneEsp(HumanBodyBones.RightLowerLeg, HumanBodyBones.RightFoot); DrawBoneEsp(HumanBodyBones.RightFoot, HumanBodyBones.RightToes); // hips to head DrawBoneEsp(HumanBodyBones.Hips, HumanBodyBones.Spine); DrawBoneEsp(HumanBodyBones.Spine, HumanBodyBones.Chest); DrawBoneEsp(HumanBodyBones.Chest, HumanBodyBones.Neck); DrawBoneEsp(HumanBodyBones.Neck, HumanBodyBones.Head); // chest to left hand DrawBoneEsp(HumanBodyBones.Chest, HumanBodyBones.LeftShoulder); DrawBoneEsp(HumanBodyBones.LeftShoulder, HumanBodyBones.LeftUpperArm); DrawBoneEsp(HumanBodyBones.LeftUpperArm, HumanBodyBones.LeftLowerArm); DrawBoneEsp(HumanBodyBones.LeftLowerArm, HumanBodyBones.LeftHand); // chest to right hand DrawBoneEsp(HumanBodyBones.Chest, HumanBodyBones.RightShoulder); DrawBoneEsp(HumanBodyBones.RightShoulder, HumanBodyBones.RightUpperArm); DrawBoneEsp(HumanBodyBones.RightUpperArm, HumanBodyBones.RightLowerArm); DrawBoneEsp(HumanBodyBones.RightLowerArm, HumanBodyBones.RightHand); // right fingers // thumb DrawBoneEsp(HumanBodyBones.RightHand, HumanBodyBones.RightThumbProximal); DrawBoneEsp(HumanBodyBones.RightThumbProximal, HumanBodyBones.RightThumbIntermediate); DrawBoneEsp(HumanBodyBones.RightThumbIntermediate, HumanBodyBones.RightThumbDistal); // index DrawBoneEsp(HumanBodyBones.RightHand, HumanBodyBones.RightIndexProximal); DrawBoneEsp(HumanBodyBones.RightIndexProximal, HumanBodyBones.RightIndexIntermediate); DrawBoneEsp(HumanBodyBones.RightIndexIntermediate, HumanBodyBones.RightIndexDistal); // middle DrawBoneEsp(HumanBodyBones.RightHand, HumanBodyBones.RightMiddleProximal); DrawBoneEsp(HumanBodyBones.RightMiddleProximal, HumanBodyBones.RightMiddleIntermediate); DrawBoneEsp(HumanBodyBones.RightMiddleIntermediate, HumanBodyBones.RightMiddleDistal); // ring DrawBoneEsp(HumanBodyBones.RightHand, HumanBodyBones.RightRingProximal); DrawBoneEsp(HumanBodyBones.RightRingProximal, HumanBodyBones.RightRingIntermediate); DrawBoneEsp(HumanBodyBones.RightRingIntermediate, HumanBodyBones.RightRingDistal); // little DrawBoneEsp(HumanBodyBones.RightHand, HumanBodyBones.RightLittleProximal); DrawBoneEsp(HumanBodyBones.RightLittleProximal, HumanBodyBones.RightLittleIntermediate); DrawBoneEsp(HumanBodyBones.RightLittleIntermediate, HumanBodyBones.RightLittleDistal); // left fingers // thumb DrawBoneEsp(HumanBodyBones.LeftHand, HumanBodyBones.LeftThumbProximal); DrawBoneEsp(HumanBodyBones.LeftThumbProximal, HumanBodyBones.LeftThumbIntermediate); DrawBoneEsp(HumanBodyBones.LeftThumbIntermediate, HumanBodyBones.LeftThumbDistal); // index DrawBoneEsp(HumanBodyBones.LeftHand, HumanBodyBones.LeftIndexProximal); DrawBoneEsp(HumanBodyBones.LeftIndexProximal, HumanBodyBones.LeftIndexIntermediate); DrawBoneEsp(HumanBodyBones.LeftIndexIntermediate, HumanBodyBones.LeftIndexDistal); // middle DrawBoneEsp(HumanBodyBones.LeftHand, HumanBodyBones.LeftMiddleProximal); DrawBoneEsp(HumanBodyBones.LeftMiddleProximal, HumanBodyBones.LeftMiddleIntermediate); DrawBoneEsp(HumanBodyBones.LeftMiddleIntermediate, HumanBodyBones.LeftMiddleDistal); // ring DrawBoneEsp(HumanBodyBones.LeftHand, HumanBodyBones.LeftRingProximal); DrawBoneEsp(HumanBodyBones.LeftRingProximal, HumanBodyBones.LeftRingIntermediate); DrawBoneEsp(HumanBodyBones.LeftRingIntermediate, HumanBodyBones.LeftRingDistal); // little DrawBoneEsp(HumanBodyBones.LeftHand, HumanBodyBones.LeftLittleProximal); DrawBoneEsp(HumanBodyBones.LeftLittleProximal, HumanBodyBones.LeftLittleIntermediate); DrawBoneEsp(HumanBodyBones.LeftLittleIntermediate, HumanBodyBones.LeftLittleDistal); } } } } if (m_vrEnabled) { foreach (Player p in m_players) { if (p == null || p.ApiUser() == null) { continue; } string displayName = p.ApiUser().displayName; // draw player tag if (!m_names.ContainsKey(displayName)) { GameObject obj = new GameObject(); UnityEngine.Object.DontDestroyOnLoad(obj); Text t = obj.AddComponent <Text>(); t.text = displayName; t.color = GetGroupColour(p); m_names[displayName] = obj; } m_names[displayName].transform.LookAt(VRCVrCamera.GetInstance().screenCamera.transform.position); m_names[displayName].transform.position = p.transform.position; GameObject myAvatar = PlayerWrappers.GetLocalPlayer().vrcPlayer.AvatarManager().currentAvatarObject; Animator myAnimator = ((myAvatar != null) ? myAvatar.GetComponent <Animator>() : null); Vector3 myPos = PlayerWrappers.GetLocalPlayer().transform.position; if (myAnimator != null) { myPos = myAnimator.GetBoneTransform(HumanBodyBones.LeftIndexDistal).position; if (myPos == null) { myPos = myAnimator.GetBoneTransform(HumanBodyBones.LeftIndexIntermediate).position; } if (myPos == null) { myPos = myAnimator.GetBoneTransform(HumanBodyBones.LeftIndexProximal).position; } if (myPos == null) { myPos = myAnimator.GetBoneTransform(HumanBodyBones.LeftHand).position; } } GameObject targetAvatar = p.vrcPlayer.AvatarManager().currentAvatarObject; Animator targetAnimator = ((targetAvatar != null) ? targetAvatar.GetComponent <Animator>() : null); Vector3 targetPos = p.transform.position; if (targetAnimator != null) { targetPos = targetAnimator.GetBoneTransform(HumanBodyBones.Head).position; } GL.Begin(GL.LINES); m_mat.SetPass(0); GL.Color(GetGroupColour(p)); GL.Vertex(myPos); GL.Vertex(targetPos); GL.End(); } } }