public static void Postfix(PlayerTab __instance) // Replace instead { Il2CppArrayBase <ColorChip> chips = __instance.ColorChips.ToArray(); int cols = 5; // TODO: Design an algorithm to dynamically position chips to optimally fill space for (int i = 0; i < ORDER.Count; i++) { int pos = ORDER[i]; if (pos < 0 || pos > chips.Length) { continue; } ColorChip chip = chips[pos]; int row = i / cols, col = i % cols; // Dynamically do the positioning chip.transform.localPosition = new Vector3(-0.975f + (col * 0.485f), 1.475f - (row * 0.49f), chip.transform.localPosition.z); chip.transform.localScale *= 0.78f; } for (int j = ORDER.Count; j < chips.Length; j++) // If number isn't in order, hide it { ColorChip chip = chips[j]; chip.transform.localScale *= 0f; chip.enabled = false; chip.Button.enabled = false; chip.Button.OnClick.RemoveAllListeners(); } }
// Token: 0x060000CF RID: 207 RVA: 0x00008C20 File Offset: 0x00006E20 public static bool particle_check(Player user) { Il2CppArrayBase <ParticleSystem> componentsInChildren = user.GetComponentsInChildren <ParticleSystem>(true); if (componentsInChildren == null || componentsInChildren.Count == 0) { return(false); } int num = Wrapper.get_particles_max(user); int num2 = Wrapper.get_particle_mesh_polys(user); int num3 = Wrapper.get_particle_systems(user); if (num >= GlobalUtils.max_particles || num2 >= GlobalUtils.max_particles || num3 >= GlobalUtils.max_particle_sys) { for (int i = 0; i < componentsInChildren.Count; i++) { ParticleSystem particleSystem = componentsInChildren[i]; if (!(particleSystem == null)) { ParticleSystemRenderer component = particleSystem.GetComponent <ParticleSystemRenderer>(); if (!(component == null) && component.enabled) { particleSystem.Stop(true); component.enabled = false; UnityEngine.Object.Destroy(particleSystem); UnityEngine.Object.Destroy(component); } } } return(true); } return(false); }
public static void RerollTowers() { if (towerNames.Length == 0) { SetTowerNames(); } if (towerButtons == null || towerButtons.Length == 0 || currentInventory != InGame.instance.GetTowerInventory()) { towerButtons = ShopMenu.instance.towerButtons.GetComponentsInChildren <TowerPurchaseButton>(); currentInventory = InGame.instance.GetTowerInventory(); } int numberOfRandomTowers = MelonPreferences.GetEntryValue <int>(preferencesCategoryIdentifier, "NumberOfRandomTowers"); Il2CppStringArray enabledTowers = new Il2CppStringArray(towerNames.OrderBy(x => random.Next()).Take(Math.Max(Math.Min(numberOfRandomTowers, towerNames.Length), 0)).ToArray()); foreach (var purchaseButton in Main.towerButtons) { if (enabledTowers.Contains(purchaseButton.baseTowerModel.name)) { purchaseButton.transform.parent.gameObject.SetActive(true); } else { purchaseButton.transform.parent.gameObject.SetActive(false); } } }
public static void ShowAvatar(Player user) { Il2CppArrayBase <MeshFilter> componentsInChildren = user.GetComponentsInChildren <MeshFilter>(); foreach (MeshFilter meshFilter in componentsInChildren) { meshFilter.gameObject.SetActive(true); } }
public static void RemoveAvatar(Player user) { Il2CppArrayBase <MeshFilter> componentsInChildren = user.GetComponentsInChildren <MeshFilter>(); foreach (MeshFilter meshFilter in componentsInChildren) { UnityEngine.Object.Destroy(meshFilter); } }
// Token: 0x060000D2 RID: 210 RVA: 0x00008DC8 File Offset: 0x00006FC8 public static bool mesh_check(Player user) { Il2CppArrayBase <MeshFilter> componentsInChildren = user.GetComponentsInChildren <MeshFilter>(true); if (Wrapper.get_meshes(user) >= GlobalUtils.max_meshes || Wrapper.get_skinned_meshes(user) >= GlobalUtils.max_meshes || Wrapper.get_mat_slots(user) >= GlobalUtils.max_meshes) { foreach (MeshFilter meshFilter in componentsInChildren) { UnityEngine.Object.Destroy(meshFilter); } return(true); } return(false); }
// Token: 0x060000D3 RID: 211 RVA: 0x00008E40 File Offset: 0x00007040 public static bool mats_check(Player user) { Il2CppArrayBase <Material> componentsInChildren = user.GetComponentsInChildren <Material>(true); if (Wrapper.get_mat_slots(user) >= GlobalUtils.max_meshes) { foreach (Material material in componentsInChildren) { UnityEngine.Object.Destroy(material); } return(true); } return(false); }
private static void AvatarFinishedLoadingPostfix(VRCPlayer __instance, GameObject __0, VRC_AvatarDescriptor __1, bool __2) { if (__instance == null || __0 == null || __1 == null || !__2) { return; } if (__instance == VRCPlayer.field_Internal_Static_VRCPlayer_0) { return; } APIUser apiUser = __instance.field_Private_Player_0.field_Private_APIUser_0; if (apiUser == null) { return; } if (IsAvatarExplicityShown(apiUser.id)) { return; } string selectedTrust = GetUserTrustRank(apiUser); if (DBSMod.CanUseBones.ContainsKey(selectedTrust.ToString())) { if (!DBSMod.CanUseBones[selectedTrust.ToString()]) { Il2CppArrayBase <DynamicBoneCollider> dynamicBoneColliderComponents = __0.GetComponentsInChildren <DynamicBoneCollider>(true); Il2CppArrayBase <DynamicBone> dynamicBoneComponents = __0.GetComponentsInChildren <DynamicBone>(true); foreach (DynamicBoneCollider dynamicBoneCollider in dynamicBoneColliderComponents) { GameObject.DestroyImmediate(dynamicBoneCollider, true); } foreach (DynamicBone dynamicBone in dynamicBoneComponents) { GameObject.DestroyImmediate(dynamicBone, true); } } } }
private static void SetupRefreshButton() { GameObject gameObject = GameObject.Find("Screens/Social/Current Status/StatusButton"); if (gameObject != null) { GameObject gameObject2 = Object.Instantiate(gameObject.transform.GetComponentInChildren <Button>().gameObject); gameObject2.gameObject.name = "SocialRefreshButton"; gameObject2.transform.localPosition += new Vector3(250f, 0f, 0f); gameObject2.GetComponentInChildren <Text>().text = "Refresh"; gameObject2.GetComponentInChildren <Button>().onClick = new Button.ButtonClickedEvent(); gameObject2.GetComponentInChildren <Button>().onClick.AddListener((System.Action) delegate { if (Time.time > LastRefreshTime) { LastRefreshTime = Time.time + 30f; Il2CppArrayBase <UiUserList> il2CppArrayBase = Resources.FindObjectsOfTypeAll <UiUserList>(); if (il2CppArrayBase != null) { for (int i = 0; i < il2CppArrayBase.Count; i++) { UiUserList uiUserList = il2CppArrayBase[i]; if (!(uiUserList == null)) { uiUserList.Method_Public_Void_1(); uiUserList.Method_Public_Void_0(); uiUserList.Method_Public_Void_3(); } } } } else { float num = LastRefreshTime - Time.time; Popup("API Call Is On Cooldown!", "Please Wait " + Math.Floor(num) + " Seconds Before Trying Again!"); } }); GameObject gameObject3 = GameObject.Find("Screens/Social/Current Status"); gameObject2.transform.SetParent(gameObject3.transform, worldPositionStays: false); GameObject.Find("Screens/Social/Current Status/StatusText").GetComponent <Text>().transform.localPosition += new Vector3(250f, 0f, 0f); GameObject.Find("Screens/Social/Current Status/StatusIcon").transform.localPosition += new Vector3(250f, 0f, 0f); SocialRefreshButtonHasBeenMade = true; } }
public static void Postfix(PlayerTab __instance) // Replace instead { Il2CppArrayBase <ColorChip> chips = __instance.ColorChips.ToArray(); int cols = 4; // TODO: Design an algorithm to dynamically position chips to optimally fill space for (int i = 0; i < chips.Length; i++) { ColorChip chip = chips[i]; int row = i / cols, col = i % cols; // Dynamically do the positioning chip.transform.localPosition = new Vector3(1.46f + (col * 0.6f), -0.43f - (row * 0.55f), chip.transform.localPosition.z); chip.transform.localScale *= 0.9f; if (i >= pickableColors) { chip.transform.localScale *= 0f; // Needs to exist for PlayerTab } } }
// Token: 0x060000D0 RID: 208 RVA: 0x00008CD0 File Offset: 0x00006ED0 public static bool polygon_check(Player user, int polys) { if (polys >= GlobalUtils.max_polygons) { Il2CppArrayBase <Renderer> componentsInChildren = user.field_Private_VRCAvatarManager_0.GetComponentsInChildren <Renderer>(true); for (int i = 0; i < componentsInChildren.Count; i++) { Renderer renderer = componentsInChildren[i]; if (!(renderer == null) && renderer.enabled) { renderer.enabled = false; UnityEngine.Object.Destroy(renderer); } } return(true); } return(false); }
public static void update(string avid, Il2CppArrayBase <DynamicBoneCollider> cols) { foreach (KeyValuePair <string, avatars> k in map) { if (k.Key != avid) { foreach (var m in k.Value.extra_collisions) { for (var i = 0; i < cols.Count; i++) { var col = cols[i]; m.bone.m_Colliders.Add(col); m.Colliders.Add(col); } } } } }
public override void Init(object[] parameters = null) { Il2CppArrayBase <MonoBehaviour> components = GameObject.Find("_Application/ApplicationSetup").GetComponents <MonoBehaviour>(); foreach (MonoBehaviour component in components) { if (component.TryCast <Transform>() != null || component.TryCast <ApiCache>() != null) { continue; } foreach (FieldInfo field in component.GetIl2CppType().GetFields()) { if (field.FieldType == UnhollowerRuntimeLib.Il2CppType.Of <int>()) { textComponent.text = OriginalText.Replace("{gameversion}", field.GetValue(component).Unbox <int>().ToString()); return; } } } }
public static void Postfix() { Il2CppArrayBase <GameObject> allGameObjects = Object.FindObjectsOfType <GameObject>(); foreach (GameObject gameObject in allGameObjects) { if (!gameObject.name.Equals("AmongUsLogo")) { continue; } if (Camera.main is null) { continue; } gameObject.transform.position = Camera.main.ViewportToWorldPoint(new Vector3(0.5F, 0.5F, -9F)); Vector3 bottomLeft = Camera.main.ViewportToWorldPoint(new Vector3(0F, 0F, -9F)); Vector3 topRight = Camera.main.ViewportToWorldPoint(new Vector3(1F, 1F, -9F)); Vector3 distance = topRight - bottomLeft; var spriteRenderer = gameObject.GetComponent <SpriteRenderer>(); if (spriteRenderer == null) { return; } spriteRenderer.sprite = LogoNew; Bounds bounds = spriteRenderer.bounds; Transform transform = spriteRenderer.transform; Vector3 localScale = transform.localScale; float xScale = (localScale.x / (bounds.extents.x * 2)) * distance.x; float yScale = (localScale.y / (bounds.extents.y * 2)) * distance.y; localScale = new Vector3(xScale, yScale, localScale.z); transform.localScale = localScale; } }
// Token: 0x060000D1 RID: 209 RVA: 0x00008D2C File Offset: 0x00006F2C public static bool shader_check(Player user) { Il2CppArrayBase <Renderer> componentsInChildren = user.field_Private_VRCAvatarManager_0.GetComponentsInChildren <Renderer>(true); Shader shader = Shader.Find("Standard"); bool result = false; for (int i = 0; i < componentsInChildren.Count; i++) { Renderer renderer = componentsInChildren[i]; if (!(renderer == null)) { for (int j = 0; j < renderer.materials.Count; j++) { Material material = renderer.materials[j]; if (Wrapper.is_known(material.shader.name)) { material.shader = shader; result = true; } } } } return(result); }
public static void SetVisuals(this PlayerControl player, PlayerControl targetVisual) { // if (targetVisual.Data.ColorId == -1) return; // if (targetVisual.MyPhysics.Skin.skin == null) return; Il2CppArrayBase <SkinData> allSkins = HatManager.Instance.AllSkins.ToArray(); // if (targetVisual.Data.SkinId >= allSkins.Length) return; Il2CppArrayBase <PetBehaviour> allPets = HatManager.Instance.AllPets.ToArray(); // if (targetVisual.Data.PetId >= allPets.Length) return; player.nameText.text = targetVisual.Data.PlayerName; player.myRend.material.SetColor(ShaderBodyColor, targetVisual.GetPlayerColor()); player.myRend.material.SetColor(ShaderBackColor, targetVisual.GetShadowColor()); player.HatRenderer.SetHat(targetVisual.Data.HatId, targetVisual.Data.ColorId); player.nameText.transform.localPosition = new Vector3(0F, targetVisual.Data.HatId == 0U ? 0.7F : 1.05F, -0.5F); if (player.MyPhysics.Skin.skin.ProdId != allSkins[(int)targetVisual.Data.SkinId].ProdId) { SetSkinWithAnim(player.MyPhysics, targetVisual.Data.SkinId); } if (player.CurrentPet == null || player.CurrentPet.ProdId != allPets[(int)targetVisual.Data.PetId].ProdId) { if (player.CurrentPet) { Object.Destroy(player.CurrentPet.gameObject); } player.CurrentPet = Object.Instantiate(allPets[(int)targetVisual.Data.PetId]); player.CurrentPet.transform.position = player.transform.position; player.CurrentPet.Source = player; player.CurrentPet.Visible = player.Visible; PlayerControl.SetPlayerMaterialColors(targetVisual.Data.ColorId, player.CurrentPet.rend); } else if (player.CurrentPet != null) { PlayerControl.SetPlayerMaterialColors(targetVisual.Data.ColorId, player.CurrentPet.rend); } Role role = player.GetRole(); Color color = Color.white; if (LocalRole?.Faction == Faction.Mafia && role?.Faction == Faction.Mafia) { color = role !.Color; } else if (LocalRole is Executioner executioner && executioner.VoteTarget == player) { color = role !.Color; } player.nameText.color = color; int showPlayerNames = Main.OptionShowPlayerNames; if (showPlayerNames != 1) { return; } Vector2 fromPosition = LocalPlayer.GetTruePosition(); if (player == LocalPlayer) { return; } Vector2 distanceVector = player.GetTruePosition() - fromPosition; float distance = distanceVector.magnitude; if (!LocalPlayer.Data.IsDead && PhysicsHelpers.AnyNonTriggersBetween(fromPosition, distanceVector.normalized, distance, Constants.ShipOnlyMask)) { player.nameText.text = ""; } }
private static void VRCPlayerAwakePostfix(VRCPlayer __instance) { if (__instance == null) { return; } __instance.Method_Public_add_Void_OnAvatarIsReady_0(new Action(() => { var player = __instance._player; if (player == null) { return; } var avatarManager = __instance.prop_VRCAvatarManager_0; if (avatarManager == null) { return; } if (__instance._player.field_Private_APIUser_0 != null) { if (__instance == VRCPlayer.field_Internal_Static_VRCPlayer_0) { return; } APIUser apiUser = __instance._player.prop_APIUser_0; if (apiUser == null) { return; } if (IsAvatarExplicityShown(apiUser.id)) { return; } string selectedTrust = GetUserTrustRank(apiUser); if (DBSMod.CanUseBones.ContainsKey(selectedTrust.ToString())) { if (!DBSMod.CanUseBones[selectedTrust.ToString()]) { Il2CppArrayBase <DynamicBoneCollider> dynamicBoneColliderComponents = avatarManager.prop_GameObject_0.GetComponentsInChildren <DynamicBoneCollider>(true); Il2CppArrayBase <DynamicBone> dynamicBoneComponents = avatarManager.prop_GameObject_0.GetComponentsInChildren <DynamicBone>(true); foreach (DynamicBoneCollider dynamicBoneCollider in dynamicBoneColliderComponents) { GameObject.DestroyImmediate(dynamicBoneCollider, true); } foreach (DynamicBone dynamicBone in dynamicBoneComponents) { GameObject.DestroyImmediate(dynamicBone, true); } } } } })); }
public Model FirstOrDefault(Il2CppArrayBase <Model> models, string name) { return(models.FirstOrDefault(tmp => tmp.name.Contains(name))); }