private static void ChangeSettingVisible(ChaCustom.CvsAccessory __instance) { if (!MakerAPI.InsideAndLoaded) { return; } if (GetController(MakerAPI.GetCharacterControl()).IsHairAccessory((int)__instance.slotNo) && ColorMatchToggle.GetSelectedValue()) { Traverse.Create(AccessoriesApi.GetMakerAccessoryPageObject((int)__instance.slotNo).GetComponent <CvsAccessory>()).Field("btnInitColor").GetValue <Button>().transform.parent.gameObject.SetActive(false); } }
/// <summary> /// Shows the accessory color controls for the current slot /// </summary> internal static void ShowAccColors(bool showButton) { if (!MakerAPI.InsideAndLoaded) { return; } CvsAccessory cvsAccessory = AccessoriesApi.GetMakerAccessoryPageObject(AccessoriesApi.SelectedMakerAccSlot).GetComponent <CvsAccessory>(); cvsAccessory.ChangeUseColorVisible(); Traverse.Create(cvsAccessory).Field("btnInitColor").GetValue <Button>().transform.parent.gameObject.SetActive(showButton); }
private void Update() { if (RemoveHotkey.Value.IsDown() && MakerAPI.InsideAndLoaded) { var customChangeMainMenu = FindObjectOfType <CustomChangeMainMenu>(); if (customChangeMainMenu.items[4].tglItem.isOn) //Accessory tab is selected //Set the Type dropdown to the "None" option which removes the accessory { AccessoriesApi.GetMakerAccessoryPageObject(AccessoriesApi.SelectedMakerAccSlot).GetComponent <CvsAccessory>().ddAcsType.value = 0; } } }
/// <summary> /// Hides the accessory color controls for the current slot /// </summary> internal static void HideAccColors() { if (!MakerAPI.InsideAndLoaded) { return; } var cvsAccessory = AccessoriesApi.GetMakerAccessoryPageObject(AccessoriesApi.SelectedMakerAccSlot).GetComponent <CvsAccessory>(); cvsAccessory.separateColor.SetActive(false); cvsAccessory.btnAcsColor01.transform.parent.gameObject.SetActive(false); cvsAccessory.btnAcsColor02.transform.parent.gameObject.SetActive(false); cvsAccessory.btnAcsColor03.transform.parent.gameObject.SetActive(false); cvsAccessory.btnAcsColor04.transform.parent.gameObject.SetActive(false); cvsAccessory.btnInitColor.transform.parent.gameObject.SetActive(false); }
/// <summary> /// Hides the accessory color controls for the current slot /// </summary> internal static void HideAccColors() { if (!MakerAPI.InsideAndLoaded) { return; } var cvsAccessory = AccessoriesApi.GetMakerAccessoryPageObject(AccessoriesApi.SelectedMakerAccSlot).GetComponent <CvsAccessory>(); Traverse.Create(cvsAccessory).Field("separateColor").GetValue <GameObject>().SetActive(false); Traverse.Create(cvsAccessory).Field("btnAcsColor01").GetValue <Button>().transform.parent.gameObject.SetActive(false); Traverse.Create(cvsAccessory).Field("btnAcsColor02").GetValue <Button>().transform.parent.gameObject.SetActive(false); Traverse.Create(cvsAccessory).Field("btnAcsColor03").GetValue <Button>().transform.parent.gameObject.SetActive(false); Traverse.Create(cvsAccessory).Field("btnAcsColor04").GetValue <Button>().transform.parent.gameObject.SetActive(false); Traverse.Create(cvsAccessory).Field("btnInitColor").GetValue <Button>().transform.parent.gameObject.SetActive(false); }
/// <summary> /// Updates the specified hair accessory /// </summary> public void UpdateAccessory(int slot, bool updateCharacter = true) { if (!IsHairAccessory(slot)) { return; } var acc = ChaControl.GetAccessoryObject(slot); if (acc == null) { return; } ChaAccessoryComponent chaAccessoryComponent = acc.GetComponent <ChaAccessoryComponent>(); if (chaAccessoryComponent == null) { return; } ChaCustomHairComponent chaCustomHairComponent = chaAccessoryComponent.gameObject.GetComponent <ChaCustomHairComponent>(); if (chaCustomHairComponent.rendHair == null) { return; } if (!HairAccessories.ContainsKey(CurrentCoordinateIndex)) { return; } if (!HairAccessories[CurrentCoordinateIndex].TryGetValue(slot, out var hairAccessoryInfo)) { return; } if (chaAccessoryComponent.rendNormal == null) { return; } if (chaCustomHairComponent.rendHair == null) { return; } if (updateCharacter && hairAccessoryInfo.ColorMatch) { if (MakerAPI.InsideAndLoaded) { CvsAccessory cvsAccessory = AccessoriesApi.GetMakerAccessoryPageObject(slot).GetComponent <CvsAccessory>(); cvsAccessory.UpdateAcsColor01(ChaControl.chaFile.custom.hair.parts[0].baseColor); cvsAccessory.UpdateAcsColor02(ChaControl.chaFile.custom.hair.parts[0].startColor); cvsAccessory.UpdateAcsColor03(ChaControl.chaFile.custom.hair.parts[0].endColor); OutlineColorPicker.SetValue(slot, ChaControl.chaFile.custom.hair.parts[0].outlineColor, false); hairAccessoryInfo.OutlineColor = ChaControl.chaFile.custom.hair.parts[0].outlineColor; } else { for (var i = 0; i < chaCustomHairComponent.rendHair.Length; i++) { Renderer renderer = chaCustomHairComponent.rendHair[i]; if (renderer == null) { continue; } if (renderer.sharedMaterial.HasProperty(ChaShader._Color)) { renderer.sharedMaterial.SetColor(ChaShader._Color, ChaControl.chaFile.custom.hair.parts[0].baseColor); } if (renderer.sharedMaterial.HasProperty(ChaShader._Color2)) { renderer.sharedMaterial.SetColor(ChaShader._Color2, ChaControl.chaFile.custom.hair.parts[0].startColor); } if (renderer.sharedMaterial.HasProperty(ChaShader._Color3)) { renderer.sharedMaterial.SetColor(ChaShader._Color3, ChaControl.chaFile.custom.hair.parts[0].endColor); } } } } Texture2D texHairGloss = (Texture2D)AccessTools.Property(typeof(ChaControl), "texHairGloss").GetValue(ChaControl, null); for (var i = 0; i < chaCustomHairComponent.rendHair.Length; i++) { Renderer renderer = chaCustomHairComponent.rendHair[i]; if (renderer == null) { continue; } if (renderer.sharedMaterial.HasProperty(ChaShader._HairGloss)) { if (hairAccessoryInfo.HairGloss) { renderer.sharedMaterial.SetTexture(ChaShader._HairGloss, texHairGloss); } else { renderer.sharedMaterial.SetTexture(ChaShader._HairGloss, null); } } if (renderer.sharedMaterial.HasProperty(ChaShader._LineColor)) { if (hairAccessoryInfo.ColorMatch) { renderer.sharedMaterial.SetColor(ChaShader._LineColor, ChaControl.chaFile.custom.hair.parts[0].outlineColor); } else { renderer.sharedMaterial.SetColor(ChaShader._LineColor, hairAccessoryInfo.OutlineColor); } } } for (var i = 0; i < chaCustomHairComponent.rendAccessory.Length; i++) { Renderer renderer = chaCustomHairComponent.rendAccessory[i]; if (renderer == null) { continue; } if (renderer.sharedMaterial.HasProperty(ChaShader._Color)) { renderer.sharedMaterial.SetColor(ChaShader._Color, hairAccessoryInfo.AccessoryColor); } if (renderer.sharedMaterial.HasProperty(ChaShader._Color2)) { renderer.sharedMaterial.SetColor(ChaShader._Color2, hairAccessoryInfo.AccessoryColor); } if (renderer.sharedMaterial.HasProperty(ChaShader._Color3)) { renderer.sharedMaterial.SetColor(ChaShader._Color3, hairAccessoryInfo.AccessoryColor); } } chaCustomHairComponent.lengthRate = hairAccessoryInfo.HairLength; }