public CmpClothes GetCustomClothesComponent(int parts) { if (this.cmpClothes == null) { return((CmpClothes)null); } if (parts >= this.cmpClothes.Length) { return((CmpClothes)null); } CmpClothes cmpClothe = this.cmpClothes[parts]; return(Object.op_Equality((Object)null, (Object)cmpClothe) ? (CmpClothes)null : cmpClothe); }
public static void InitializeClothes(GameObject selectedObject) { GameObject clotheObject = selectedObject; clotheObject.layer = 10; if (clotheObject != null) { AIChara.CmpClothes clotheComponent = clotheObject.GetComponent <AIChara.CmpClothes>(); if (clotheComponent == null) { clotheComponent = clotheObject.AddComponent <AIChara.CmpClothes>(); } FindAssist findAssist = new FindAssist(); findAssist.Initialize(clotheComponent.transform); clotheComponent.objTopDef = findAssist.GetObjectFromName("n_top_a"); if (clotheComponent.objTopDef == null) { clotheComponent.objTopDef = findAssist.GetObjectFromName("top_00_a"); } clotheComponent.objTopHalf = findAssist.GetObjectFromName("n_top_b"); if (clotheComponent.objTopHalf == null) { clotheComponent.objTopHalf = findAssist.GetObjectFromName("top_00_b"); } clotheComponent.objBotDef = findAssist.GetObjectFromName("n_bot_a"); if (clotheComponent.objBotDef == null) { clotheComponent.objBotDef = findAssist.GetObjectFromName("bot_00_a"); } clotheComponent.objBotHalf = findAssist.GetObjectFromName("n_bot_b"); if (clotheComponent.objBotHalf == null) { clotheComponent.objBotHalf = findAssist.GetObjectFromName("bot_00_b"); } clotheComponent.objOpt01 = (from x in findAssist.dictObjName where x.Key.StartsWith("op1") select x.Value).ToArray(); clotheComponent.objOpt02 = (from x in findAssist.dictObjName where x.Key.StartsWith("op2") select x.Value).ToArray(); // remove all dynamic bones. smh... DynamicBone[] components = clotheComponent.GetComponents <DynamicBone>(); foreach (var comp in components) { Object.DestroyImmediate(comp); } Regex rgx = new Regex(@"^cf_J_Legsk_[0-9]{2}_00$"); // f**k off _dam bones var dynBones = (from x in findAssist.dictObjName where rgx.IsMatch(x.Value.transform.name) select x.Value).ToArray(); foreach (GameObject bone in dynBones) { DynamicBone dynBone = clotheObject.AddComponent <DynamicBone>(); dynBone.m_Root = bone.transform; dynBone.m_UpdateRate = 60; dynBone.m_UpdateMode = DynamicBone.UpdateMode.AnimatePhysics; dynBone.m_Damping = 0.430f; dynBone.m_DampingDistrib = new AnimationCurve(); dynBone.m_DampingDistrib.AddKey(1f, 0.3f); dynBone.m_DampingDistrib.AddKey(0f, 0.4f); dynBone.m_Elasticity = 0.038f; dynBone.m_Stiffness = 0.669f; dynBone.m_Inert = 0.244f; dynBone.m_Radius = 0.2f; dynBone.m_RadiusDistrib = new AnimationCurve(); dynBone.m_RadiusDistrib.AddKey(0f, 1f); dynBone.m_RadiusDistrib.AddKey(1f, 1.5f); dynBone.m_EndLength = 0f; dynBone.m_Force = new Vector3(0, -0.0025f, 0); } Regex rgx2 = new Regex(@"^cf_J_sk_[0-9]{2}_00$"); // f**k you _dam bones var dynBones2 = (from x in findAssist.dictObjName where rgx2.IsMatch(x.Value.transform.name) select x.Value).ToArray(); foreach (GameObject bone in dynBones2) { DynamicBone dynBone = clotheObject.AddComponent <DynamicBone>(); dynBone.m_Root = bone.transform; dynBone.m_UpdateRate = 60; dynBone.m_UpdateMode = DynamicBone.UpdateMode.AnimatePhysics; dynBone.m_Damping = 0.430f; dynBone.m_DampingDistrib = new AnimationCurve(); dynBone.m_DampingDistrib.AddKey(1f, 0.3f); dynBone.m_DampingDistrib.AddKey(0f, 0.4f); dynBone.m_Elasticity = 0.038f; dynBone.m_Stiffness = 0.669f; dynBone.m_Inert = 0.244f; dynBone.m_Radius = 0.2f; dynBone.m_RadiusDistrib = new AnimationCurve(); dynBone.m_RadiusDistrib.AddKey(0f, 1f); dynBone.m_RadiusDistrib.AddKey(1f, 1.5f); dynBone.m_EndLength = 0f; dynBone.m_Force = new Vector3(0, -0.0025f, 0); } Renderer[] renderers = clotheObject.GetComponentsInChildren <Renderer>(); clotheComponent.rendCheckVisible = new Renderer[renderers.Length]; clotheComponent.rendNormal01 = new Renderer[renderers.Length]; for (int i = 0; i < renderers.Length; i++) { renderers[i].gameObject.layer = 10; clotheComponent.useColorN01 = true; clotheComponent.rendCheckVisible[i] = renderers[i]; clotheComponent.rendNormal01[i] = renderers[i]; } } }