Browse Source

Serialize hair/skirt gravity control

habeebweeb 4 years ago
parent
commit
49ba31bc02

+ 4 - 0
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Managers/MeidoManager.cs

@@ -91,6 +91,8 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
             {
                 meido.Serialize(binaryWriter);
             }
+            // Global hair/skirt gravity
+            binaryWriter.Write(GlobalGravity);
         }
 
         public void Deserialize(System.IO.BinaryReader binaryReader)
@@ -109,6 +111,8 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                 Meido meido = ActiveMeidoList[i];
                 meido.Deserialize(binaryReader, dataVersion, isMMScene);
             }
+            // Global hair/skirt gravity
+            GlobalGravity = binaryReader.ReadBoolean();
         }
 
         private void UnloadMeidos()

+ 20 - 0
COM3D2.MeidoPhotoStudio.Plugin/MeidoPhotoStudio/Meido/Meido.cs

@@ -690,6 +690,12 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                     }
                     tempWriter.Write(value);
                 }
+                // hair/skirt gravity
+                tempWriter.Write(HairGravityActive);
+                if (HairGravityActive) tempWriter.WriteVector3(hairGravityControl.transform.localPosition);
+                tempWriter.Write(SkirtGravityActive);
+                if (SkirtGravityActive) tempWriter.WriteVector3(skirtGravityControl.transform.localPosition);
+
                 // zurashi and mekure
                 tempWriter.Write(CurlingFront);
                 tempWriter.Write(CurlingBack);
@@ -794,6 +800,20 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
                     Body.SetMask(clothingSlot, value);
                 }
             }
+            // hair/skirt gravity
+            bool hairGravityActive = binaryReader.ReadBoolean();
+            if (hairGravityActive)
+            {
+                HairGravityActive = true;
+                ApplyGravity(binaryReader.ReadVector3(), skirt: false);
+            }
+            bool skirtGravityActive = binaryReader.ReadBoolean();
+            if (skirtGravityActive)
+            {
+                SkirtGravityActive = true;
+                ApplyGravity(binaryReader.ReadVector3(), skirt: true);
+            }
+
             // zurashi and mekure
             bool curlingFront = binaryReader.ReadBoolean();
             bool curlingBack = binaryReader.ReadBoolean();