Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.81 KB | None | 0 0
  1.      [HarmonyPostfix, HarmonyPatch(typeof(HScene), "SetStartVoice")]
  2.         public static void AddPColliders(HScene __instance)
  3.         {
  4.             inHScene = true;
  5.  
  6.             male_list = __instance.GetMales().Where(male => male != null).ToArray();
  7.             fem_list = __instance.GetFemales().Where(female => female != null).ToArray();
  8.            
  9.  
  10.             Console.WriteLine("ItJustWerks(tm)");
  11.            
  12.             foreach (var male in male_list.Where(male => male != null))
  13.             {
  14.                 foreach (var penisshaft in male.GetComponentsInChildren<Transform>().Where(shaft=>shaft.name.Contains("cm_J_dan101_00")))
  15.                 {
  16.                      dbcshaft = penisshaft.GetComponent<DynamicBoneCollider>();                    
  17.  
  18.                      if (dbcshaft == null)
  19.                      {
  20.                          Console.WriteLine("No collider found in penis shaft, adding");
  21.                          dbcshaft = penisshaft.gameObject.AddComponent(typeof(DynamicBoneCollider)) as DynamicBoneCollider;
  22.                          Console.WriteLine("Collider added to penis shaft");
  23.                      }
  24.                      else
  25.                      {
  26.                          Console.WriteLine("Collider exists at penis shaft");
  27.                      }
  28.                      //dbc.m_Direction = DynamicBoneColliderBase.Direction.Z;
  29.                      dbcshaft.m_Direction = _realDBShaftDirection;
  30.                      //dbc.m_Center = new Vector3(0, 0, -0.91f);
  31.                      dbcshaft.m_Center = new Vector3(_dbshaftcenter_x.Value, _dbshaftcenter_y.Value, _dbshaftcenter_z.Value);
  32.                      //dbc.m_Bound = DynamicBoneColliderBase.Bound.Outside;
  33.                      dbcshaft.m_Bound = _realDBShaftBound;
  34.                      //dbc.m_Radius = 0.20f;
  35.                      dbcshaft.m_Radius = _dbshaftRadius.Value;
  36.                      //dbc.m_Height = 2.2f;
  37.                      dbcshaft.m_Height = _dbshaftHeight.Value;
  38.                      foreach (var penistip in penisshaft.GetComponentsInChildren<Transform>().Where(x => x.name.Contains("cm_J_dan109_00")))
  39.                      {                        
  40.                          dbc = penistip.GetComponent<DynamicBoneCollider>();
  41.                          Console.WriteLine("Checking to see if the penis tip has a collider");
  42.                          if (dbc == null)
  43.                          {
  44.                              Console.WriteLine("No collider found in penis head, adding");
  45.                              dbc = penistip.gameObject.AddComponent(typeof(DynamicBoneCollider)) as DynamicBoneCollider;
  46.                              Console.WriteLine("Collider added to penis head");
  47.                          }
  48.                          else
  49.                          {
  50.                              Console.WriteLine("Collider exists at penis head");
  51.                          }
  52.                          //dbc.m_Direction = DynamicBoneColliderBase.Direction.Z;
  53.                          dbc.m_Direction = _realDBDirection;
  54.                          //dbc.m_Center = new Vector3(0, 0, -0.91f);
  55.                          dbc.m_Center = new Vector3(_dbcenter_x.Value, _dbcenter_y.Value, _dbcenter_z.Value);
  56.                          //dbc.m_Bound = DynamicBoneColliderBase.Bound.Outside;
  57.                          dbc.m_Bound = _realDBBound;
  58.                          //dbc.m_Radius = 0.20f;
  59.                          dbc.m_Radius = _dbRadius.Value;
  60.                          //dbc.m_Height = 2.2f;
  61.                          dbc.m_Height = _dbHeight.Value;
  62.                      }
  63.                  }
  64.                
  65.             }                
  66.             foreach(var female in fem_list.Where(female => female != null))
  67.             {
  68.                  Console.WriteLine("Checking for additional vagina dynamic bones");
  69.                  foreach (DynamicBone db in female.GetComponentsInChildren<DynamicBone>().Where(x => x.m_Root.name.Contains("cf_J_Vagina")))
  70.                  {
  71.                       if (db != null)
  72.                       {
  73.                          Console.WriteLine("Vagina bones found, adding penis colliders to collider lists.");
  74.                         //foreach (var male in __instance.GetMales().Where(male => male != null))
  75.                         //{
  76.                         //foreach (var dbc in male.GetComponentsInChildren<DynamicBoneCollider>().Where(x => x.name.Contains("cm_J_dan109_00")))
  77.                         //{
  78.                         vagBones.Add(db);
  79.                         if (db.m_Colliders.Contains(dbcshaft))
  80.                         {
  81.                             Console.WriteLine("Instance of " + dbcshaft.name + " already exists in list for DB " + db.m_Root.name);                            
  82.                         }
  83.                         else
  84.                         {
  85.                             db.m_Colliders.Add(dbcshaft);
  86.                             Console.WriteLine(dbcshaft.name + " added to " + female.name + " for bone " + db.m_Root.name);
  87.                         }
  88.                         if (db.m_Colliders.Contains(dbc))
  89.                         {
  90.                             Console.WriteLine("Instance of " + dbc.name + " already exists in list for DB " + db.m_Root.name);                                
  91.                         }
  92.                         else
  93.                         {
  94.                             db.m_Colliders.Add(dbc);
  95.                             Console.WriteLine(dbc.name + " added to " + female.name + " for bone " + db.m_Root.name);
  96.                         }
  97.                              //}
  98.                          //}
  99.                       }
  100.                       else
  101.                       {
  102.                           Console.WriteLine("No vagina dynamic bones found.");
  103.                       }
  104.                  }
  105.             }
  106.            
  107.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement