コード例 #1
0
        public void ResetMaterial()
        {
            Plugin.Log($"Player: {NickName} resetting material");

            if (defaultMaterial != null)
            {
                SetVRRigMaterial(defaultMaterial);
            }

            CurrentMaterial = null;
        }
コード例 #2
0
        public void SetMaterial(GorillaMaterial material)
        {
            if (material == null)
            {
                ResetMaterial();
                return;
            }

            Plugin.Log($"Player: {NickName} switching material from {CurrentMaterial?.Descriptor?.Name} to {material?.Descriptor?.Name}");

            CurrentMaterial = material;
            SetVRRigMaterial(material.GetMaterial());
        }
コード例 #3
0
        public void SetMaterial(GorillaMaterial material)
        {
            Material = material;
            if (previewOrb != null)
            {
                Destroy(previewOrb);
                previewOrb = null;
            }
            if (Material != null)
            {
                GameObject head = wardrobeItemButton.controlledModel.gameObject;
                previewOrb = Material.GetPreviewOrb(head.transform);
            }

            UpdateButton();
        }
コード例 #4
0
        public static IList <GorillaMaterial> LoadMaterials(IEnumerable <string> materialFiles)
        {
            IList <GorillaMaterial> materials = new List <GorillaMaterial> {
                new GorillaMaterial("Default")
            };

            foreach (string materialFile in materialFiles)
            {
                try
                {
                    GorillaMaterial material = new GorillaMaterial(materialFile);
                    materials.Add(material);
                }
                catch (Exception ex)
                {
                    Debug.Log("ERROR!");
                    Debug.Log(ex);
                }
            }
            return(materials);
        }
コード例 #5
0
        public static int SelectedMaterialFromConfig(string configString)
        {
            string selectedMatString = configString.ToLower().Trim();

            for (int i = 1; i < GorillaMaterialObjects.Count; i++)
            {
                GorillaMaterial gorillaMaterialObject = GorillaMaterialObjects[i];
                if (gorillaMaterialObject == null)
                {
                    return(0);
                }
                if (gorillaMaterialObject.Descriptor.MaterialName.ToLower().Trim() == selectedMatString)
                {
                    return(i);
                }
                else if (Path.GetFileNameWithoutExtension(gorillaMaterialObject.FileName).ToLower().Trim() == selectedMatString)
                {
                    return(i);
                }
            }
            return(0);
        }
コード例 #6
0
 public static void ChangeMaterial(VRRig __instance, int materialIndex)
 {
     if (materialIndex == 0 && (IsLocalPlayer(__instance) || GorillaCosmetics.applyToOtherPlayers.Value))
     {
         // default mat
         GorillaMaterial material = AssetLoader.SelectedMaterial();
         if (material != null && material.Material != null)
         {
             Material instantiatedMat = UnityEngine.Object.Instantiate(material.Material);
             if (material.Descriptor.CustomColors)
             {
                 Color color = new Color(PlayerPrefs.GetFloat("redValue"), PlayerPrefs.GetFloat("greenValue"), PlayerPrefs.GetFloat("blueValue"));
                 instantiatedMat.color = color;
             }
             __instance.mainSkin.material = instantiatedMat;
             try
             {
                 Debug.Log($"Changed the skin of {__instance.photonView.Owner.UserId}");
             }
             catch
             {
                 Debug.Log("Couldn't find name of user.");
             }
         }
     }
     else if (materialIndex > 0 && (IsLocalPlayer(__instance) || GorillaCosmetics.applyInfectedToOtherPlayers.Value))
     {
         GorillaMaterial material = AssetLoader.SelectedInfectedMaterial();
         if (material != null && material.Material != null)
         {
             Material instantiatedMat = UnityEngine.Object.Instantiate(material.Material);
             if (material.Descriptor.CustomColors)
             {
                 instantiatedMat.color = __instance.mainSkin.material.color;
             }
             __instance.mainSkin.material = instantiatedMat;
         }
     }
 }