public static bool Prefix(Wears __instance, GameObject obj) { Transform this_baseboneroot_transform = baseBoneRootField.GetValue(__instance) as Transform; DynamicBone[] componentsInChildren = obj.GetComponentsInChildren <DynamicBone>(true); DynamicBoneCollider[] componentsInChildren2 = this_baseboneroot_transform.GetComponentsInChildren <DynamicBoneCollider>(true); foreach (DynamicBone dynamicBone in componentsInChildren) { if (dynamicBone.m_Root == null) { continue; } Transform transform = Transform_Utility.FindTransform(this_baseboneroot_transform, dynamicBone.m_Root.name); if (transform != null) { dynamicBone.m_Root = transform; } else { Transform try_the_wear_rootbone = obj.transform.Find("cf_J_Root"); transform = Transform_Utility.FindTransform(try_the_wear_rootbone, dynamicBone.m_Root.name); if (transform != null) { dynamicBone.m_Root = transform; } else { try_the_wear_rootbone = obj.transform.Find("cm_J_Root"); transform = Transform_Utility.FindTransform(try_the_wear_rootbone, dynamicBone.m_Root.name); if (transform != null) { dynamicBone.m_Root = transform; } else { Debug.LogError("ダイナミックボーン付け替えに失敗:" + dynamicBone.m_Root.name); } } } dynamicBone.m_Colliders.Clear(); foreach (DynamicBoneCollider item in componentsInChildren2) { dynamicBone.m_Colliders.Add(item); } } return(false); }
private void CalcNeedFloat(int floatCount, double totalFloat) { if (floatCount == 10) { NeedFloat = (string)Application.Current.Resources["NeedFloatMinus"]; return; } if (_resultFloat == 0.0) { NeedFloat = ""; return; } double needFloat = 0.0; needFloat = ((_threshold * 10) - totalFloat) / (10 - floatCount); if (needFloat < 0) { NeedFloat = (string)Application.Current.Resources["NeedFloatMinus"]; return; } NeedFloat = Wears.GetWearByFloat(needFloat).ShortName + " " + needFloat.ToString(); }
static bool Prefix(bool show, Wears __instance) { var instance = Traverse.Create(__instance); var wearParam = instance.Field("wearParam").GetValue <WearParameter>(); var wearObjs = instance.Field("wearObjs").GetValue <WearObj[]>(); var skinObj = instance.Field("skinObj").GetValue <GameObject>(); var sex = instance.Field("sex").GetValue <SEX>(); var human = instance.Field("human").GetValue <Human>(); var nipShow = true; var underHairShow = true; var barelyNude = false; if (show) { barelyNude = wearParam.isSwimwear | wearObjs[0] == null | __instance.GetShow(WEAR_SHOW_TYPE.TOPUPPER, true) == WEAR_SHOW.HIDE; } skinObj.SetActive(barelyNude); if (sex == SEX.FEMALE) { if (show) { if (!wearParam.isSwimwear) { var topData = CustomDataManager.GetWearData_Female(WEAR_TYPE.TOP, wearParam.GetWearID(WEAR_TYPE.TOP)); nipShow = topData == null | topData.nip | __instance.GetShow(WEAR_SHOW_TYPE.TOPUPPER, true) != WEAR_SHOW.ALL; var braDisableFlag = topData != null& topData.braDisable& __instance.GetShow(WEAR_SHOW_TYPE.TOPUPPER, true) != WEAR_SHOW.ALL; var braData = CustomDataManager.GetWearData_Female(WEAR_TYPE.BRA, wearParam.GetWearID(WEAR_TYPE.BRA)); nipShow &= braDisableFlag | braData == null | braData.nip | __instance.GetShow(WEAR_SHOW_TYPE.BRA, true) != WEAR_SHOW.ALL; var shortsID = wearParam.GetWearID(WEAR_TYPE.SHORTS); var shortsData = CustomDataManager.GetWearData_Female(WEAR_TYPE.SHORTS, shortsID); underHairShow = shortsID == 0 | shortsData == null | __instance.GetShow(WEAR_SHOW_TYPE.SHORTS, true) != WEAR_SHOW.ALL; } else { var swimID = wearParam.GetWearID(WEAR_TYPE.SWIM); var swimData = CustomDataManager.GetWearData_Female(WEAR_TYPE.SWIM, swimID); if (swimID == 50 | swimData == null) { nipShow = true; underHairShow = true; } else { underHairShow = swimData.underhair | __instance.GetShow(WEAR_SHOW_TYPE.SWIMLOWER, true) != WEAR_SHOW.ALL; nipShow = swimData.nip | __instance.GetShow(WEAR_SHOW_TYPE.SWIMUPPER, true) != WEAR_SHOW.ALL; } } var panstData = CustomDataManager.GetWearData_Female(WEAR_TYPE.PANST, wearParam.GetWearID(WEAR_TYPE.PANST)); underHairShow &= panstData == null | __instance.GetShow(WEAR_SHOW_TYPE.PANST, true) != WEAR_SHOW.ALL | panstData.underhair; } else { nipShow = false; underHairShow = false; } if (human != null) { human.body.ShowUnderHair3D(underHairShow); human.body.ShowNip(nipShow); return(false); } } else if (human != null) { human.body.ShowUnderHair3D(barelyNude); } return(false); }
public static bool Prefix(Wears __instance, WEAR_SHOW_TYPE showType) { WEAR_TYPE wear_TYPE = Wears.ShowToWearType[(int)showType]; int num = (int)wear_TYPE; FieldInfo wearObjsField = typeof(Wears).GetField("wearObjs", BindingFlags.Instance | BindingFlags.NonPublic); FieldInfo wearParamField = typeof(Wears).GetField("wearParam", BindingFlags.Instance | BindingFlags.NonPublic); WearObj[] wearObjs = wearObjsField.GetValue(__instance) as WearObj[]; WearParameter wearParam = wearParamField.GetValue(__instance) as WearParameter; if (wearObjs[num] == null) { return(false); } GameObject obj = wearObjs[num].obj; WEAR_SHOW show = __instance.GetShow(showType, true); bool flag = true; bool flag2 = false; if (wear_TYPE == WEAR_TYPE.SWIM) { WearData wearData = __instance.GetWearData(WEAR_TYPE.SWIM); if (wearData != null && wearData.coordinates == 0) { flag2 = true; } } if (!flag2) { flag = (show != WEAR_SHOW.HIDE); } if (flag) { flag = Wears.IsEnableWear(wearParam.isSwimwear, wear_TYPE); } if (wear_TYPE == WEAR_TYPE.BRA && flag) { if (wearObjs[0] != null && __instance.GetShow(WEAR_SHOW_TYPE.TOPUPPER, true) == WEAR_SHOW.ALL) { flag = false; } WearData wearData2 = __instance.GetWearData(WEAR_TYPE.TOP); WearData wearData3 = __instance.GetWearData(WEAR_TYPE.BOTTOM); if (wearData2 != null) { if (wearData2.nip) { flag = true; } if (wearData2.braDisable) { flag = false; } } if (wearData3 != null && wearData3.braDisable) { flag = false; } } if (wear_TYPE == WEAR_TYPE.SHORTS && flag) { WearData wearData4 = __instance.GetWearData(WEAR_TYPE.TOP); WearData wearData5 = __instance.GetWearData(WEAR_TYPE.BOTTOM); if (wearData4 != null && wearData4.shortsDisable) { flag = false; } if (wearData5 != null && wearData5.shortsDisable) { flag = false; } } if (wear_TYPE == WEAR_TYPE.BOTTOM && flag) { WearData wearData6 = __instance.GetWearData(WEAR_TYPE.TOP); if (wearData6 != null && wearData6.coordinates == 2) { flag = false; } } WearObj wearObj = wearObjs[num]; if (Wears.IsLower(showType)) { wearObj.ChangeShow_Lower(show); } else { wearObj.obj.SetActive(flag); if (wearObj.liquid != null && wearObj.liquid.root != null) { wearObj.liquid.root.SetActive(flag); } wearObj.ChangeShow_Upper(show); } return(false); }