diff --git a/KK_Plugins.sln b/KK_Plugins.sln
index 749a3133..87b34602 100644
--- a/KK_Plugins.sln
+++ b/KK_Plugins.sln
@@ -505,6 +505,10 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Core.FadeAdjuster", "src\Fa
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KKS.FadeAdjuster", "src\FadeAdjuster.KKS\KKS.FadeAdjuster.csproj", "{88EFE9CF-459C-4ABF-A59F-5F8FB53A7E79}"
EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Core.RandomCharacterGenerator", "src\RandomCharacterGenerator.Core\Core.RandomCharacterGenerator.shproj", "{825E0C5D-2125-401F-A457-54EBACD6068E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KKS.RandomCharacterGenerator", "src\RandomCharacterGenerator.KKS\KKS.RandomCharacterGenerator.csproj", "{7B2557EE-0C49-4931-B32D-82B01DD42890}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Shared\Shared.projitems*{002aa641-4dc8-4fef-83dd-a7fab3af6daf}*SharedItemsImports = 4
@@ -703,6 +707,8 @@ Global
src\Pushup.Core\Pushup.Core.projitems*{79bc0e60-bb08-4a5b-928f-8475a2977aa2}*SharedItemsImports = 4
src\Shared\Shared.projitems*{79bc0e60-bb08-4a5b-928f-8475a2977aa2}*SharedItemsImports = 4
src\HCharaAdjustment.Core\HCharaAdjustment.Core.projitems*{7a7d2306-8e32-4016-8562-b5d45eaa633f}*SharedItemsImports = 13
+ src\RandomCharacterGenerator.Core\RandomCharacterGenerator.Core.projitems*{7b2557ee-0c49-4931-b32d-82b01dd42890}*SharedItemsImports = 4
+ src\Shared\Shared.projitems*{7b2557ee-0c49-4931-b32d-82b01dd42890}*SharedItemsImports = 4
src\EyeShaking.Core\EyeShaking.Core.projitems*{7b514b4e-a0bc-4da9-b2a8-0b72515e8033}*SharedItemsImports = 4
src\Shared\Shared.projitems*{7b514b4e-a0bc-4da9-b2a8-0b72515e8033}*SharedItemsImports = 4
src\InvisibleBody.Core.Studio\Core.InvisibleBody.Studio.projitems*{7c091568-6504-40c9-8928-7bb0f1dfdc52}*SharedItemsImports = 4
@@ -713,6 +719,7 @@ Global
src\Shared\Shared.projitems*{7cd43c9b-d042-479a-8fd5-82a87b0f2963}*SharedItemsImports = 4
src\UncensorSelector.Core.Studio\Core.UncensorSelector.Studio.projitems*{7cd43c9b-d042-479a-8fd5-82a87b0f2963}*SharedItemsImports = 4
src\UncensorSelector.Core\Core.UncensorSelector.projitems*{7cd43c9b-d042-479a-8fd5-82a87b0f2963}*SharedItemsImports = 4
+ src\RandomCharacterGenerator.Core\RandomCharacterGenerator.Core.projitems*{7e21e1cc-356e-41bb-abdd-bd0f99710361}*SharedItemsImports = 4
src\Shared\Shared.projitems*{7e21e1cc-356e-41bb-abdd-bd0f99710361}*SharedItemsImports = 4
src\Shared\Shared.projitems*{808eedec-4707-45a1-929c-9e5506180204}*SharedItemsImports = 4
src\StudioSceneSettings.Core\Core.StudioSceneSettings.projitems*{808eedec-4707-45a1-929c-9e5506180204}*SharedItemsImports = 4
@@ -723,6 +730,7 @@ Global
src\UIUtility\UIUtility.projitems*{81c5bb6f-1182-4395-80a9-eaa47cf83a1c}*SharedItemsImports = 4
src\FKIK.Core\Core.FKIK.projitems*{81d88c3e-4094-436c-8eed-ba18a81a96a4}*SharedItemsImports = 13
src\InvisibleBody.Core.Studio\Core.InvisibleBody.Studio.projitems*{81de7d3b-a8a0-43c2-ac9d-f65ac528b997}*SharedItemsImports = 13
+ src\RandomCharacterGenerator.Core\RandomCharacterGenerator.Core.projitems*{825e0c5d-2125-401f-a457-54ebacd6068e}*SharedItemsImports = 13
src\Colliders.Core\Core.Colliders.projitems*{83d27765-5c0a-4909-b4dc-fb6b20ece642}*SharedItemsImports = 4
src\Shared\Shared.projitems*{83d27765-5c0a-4909-b4dc-fb6b20ece642}*SharedItemsImports = 4
src\AccessoryClothes.Core\AccessoryClothes.Core.projitems*{84060175-95bd-4ad7-ba46-508dc8959b32}*SharedItemsImports = 4
@@ -1537,6 +1545,10 @@ Global
{88EFE9CF-459C-4ABF-A59F-5F8FB53A7E79}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88EFE9CF-459C-4ABF-A59F-5F8FB53A7E79}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88EFE9CF-459C-4ABF-A59F-5F8FB53A7E79}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B2557EE-0C49-4931-B32D-82B01DD42890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B2557EE-0C49-4931-B32D-82B01DD42890}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B2557EE-0C49-4931-B32D-82B01DD42890}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B2557EE-0C49-4931-B32D-82B01DD42890}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1741,6 +1753,8 @@ Global
{EAB8EF2C-0401-4A16-850B-E3F6A12B7881} = {28131092-2FE4-4763-A925-F0A315905AA8}
{36E9F31D-A68D-4BD2-B2E9-EA11CE8CE54F} = {7E7FAD27-BC88-4BD1-A5C6-BDB87BA433F1}
{88EFE9CF-459C-4ABF-A59F-5F8FB53A7E79} = {7E7FAD27-BC88-4BD1-A5C6-BDB87BA433F1}
+ {825E0C5D-2125-401F-A457-54EBACD6068E} = {DF8AC77E-F7A3-4A32-9B2E-EF73D3F68D12}
+ {7B2557EE-0C49-4931-B32D-82B01DD42890} = {DF8AC77E-F7A3-4A32-9B2E-EF73D3F68D12}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D0F79985-4CB7-46CB-BEC2-FF89C476ED20}
diff --git a/src/RandomCharacterGenerator.KK/Properties/AssemblyInfo.cs b/src/RandomCharacterGenerator.Core/AssemblyInfo.cs
similarity index 100%
rename from src/RandomCharacterGenerator.KK/Properties/AssemblyInfo.cs
rename to src/RandomCharacterGenerator.Core/AssemblyInfo.cs
diff --git a/src/RandomCharacterGenerator.Core/Core.RandomCharacterGenerator.shproj b/src/RandomCharacterGenerator.Core/Core.RandomCharacterGenerator.shproj
new file mode 100644
index 00000000..4e3efeea
--- /dev/null
+++ b/src/RandomCharacterGenerator.Core/Core.RandomCharacterGenerator.shproj
@@ -0,0 +1,13 @@
+
+
+
+ 825e0c5d-2125-401f-a457-54ebacd6068e
+ 14.0
+
+
+
+
+
+
+
+
diff --git a/src/RandomCharacterGenerator.Core/RandomCharacterGenerator.Core.projitems b/src/RandomCharacterGenerator.Core/RandomCharacterGenerator.Core.projitems
new file mode 100644
index 00000000..6c5865ae
--- /dev/null
+++ b/src/RandomCharacterGenerator.Core/RandomCharacterGenerator.Core.projitems
@@ -0,0 +1,18 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+ true
+ 825e0c5d-2125-401f-a457-54ebacd6068e
+
+
+ RandomCharacterGenerator.Core
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.cs b/src/RandomCharacterGenerator.Core/RandomCharacterGenerator.cs
similarity index 100%
rename from src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.cs
rename to src/RandomCharacterGenerator.Core/RandomCharacterGenerator.cs
diff --git a/src/RandomCharacterGenerator.KK/RandomizerBody.cs b/src/RandomCharacterGenerator.Core/RandomizerBody.cs
similarity index 98%
rename from src/RandomCharacterGenerator.KK/RandomizerBody.cs
rename to src/RandomCharacterGenerator.Core/RandomizerBody.cs
index d51057e3..0fe97226 100644
--- a/src/RandomCharacterGenerator.KK/RandomizerBody.cs
+++ b/src/RandomCharacterGenerator.Core/RandomizerBody.cs
@@ -13,7 +13,11 @@ private class RandomizerBody
public static void RandomizeBody()
{
+#if KK
var chaListCtrl = Singleton.Instance.chaListCtrl;
+#elif KKS
+ var chaListCtrl = Character.chaListCtrl;
+#endif
var body = Custom.body;
var categoryInfo = chaListCtrl.GetCategoryInfo(ChaListDefine.CategoryNo.mt_body_detail);
diff --git a/src/RandomCharacterGenerator.KK/RandomizerFace.cs b/src/RandomCharacterGenerator.Core/RandomizerFace.cs
similarity index 97%
rename from src/RandomCharacterGenerator.KK/RandomizerFace.cs
rename to src/RandomCharacterGenerator.Core/RandomizerFace.cs
index d8249469..166641dc 100644
--- a/src/RandomCharacterGenerator.KK/RandomizerFace.cs
+++ b/src/RandomCharacterGenerator.Core/RandomizerFace.cs
@@ -13,7 +13,11 @@ private class RandomizerFace
public static void RandomizeEyes()
{
+#if KK
var chaListCtrl = Singleton.Instance.chaListCtrl;
+#elif KKS
+ var chaListCtrl = Character.chaListCtrl;
+#endif
var face = Custom.face;
Dictionary categoryInfo;
@@ -54,7 +58,11 @@ public static void RandomizeEyes()
public static void RandomizeEtc()
{
+#if KK
var chaListCtrl = Singleton.Instance.chaListCtrl;
+#elif KKS
+ var chaListCtrl = Character.chaListCtrl;
+#endif
var face = Custom.face;
var categoryInfo = chaListCtrl.GetCategoryInfo(ChaListDefine.CategoryNo.bo_head);
diff --git a/src/RandomCharacterGenerator.KK/RandomizerHair.cs b/src/RandomCharacterGenerator.Core/RandomizerHair.cs
similarity index 95%
rename from src/RandomCharacterGenerator.KK/RandomizerHair.cs
rename to src/RandomCharacterGenerator.Core/RandomizerHair.cs
index 9c4c530c..e1d06dce 100644
--- a/src/RandomCharacterGenerator.KK/RandomizerHair.cs
+++ b/src/RandomCharacterGenerator.Core/RandomizerHair.cs
@@ -10,7 +10,11 @@ private class RandomizerHair
{
public static void RandomizeType()
{
+#if KK
var chaListCtrl = Singleton.Instance.chaListCtrl;
+#elif KKS
+ var chaListCtrl = Character.chaListCtrl;
+#endif
var hair = Custom.hair;
var categoryInfo = chaListCtrl.GetCategoryInfo(ChaListDefine.CategoryNo.bo_hair_b);
@@ -67,7 +71,11 @@ public static void RandomizeColor()
public static void RandomizeEtc()
{
+#if KK
var chaListCtrl = Singleton.Instance.chaListCtrl;
+#elif KKS
+ var chaListCtrl = Character.chaListCtrl;
+#endif
var hair = Custom.hair;
for (var i = 0; i < 4; i++)
{
diff --git a/src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.csproj b/src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.csproj
index 9d8d33f6..fbb23555 100644
--- a/src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.csproj
+++ b/src/RandomCharacterGenerator.KK/KK.RandomCharacterGenerator.csproj
@@ -81,13 +81,6 @@
False
-
-
-
-
-
-
-
@@ -97,7 +90,11 @@
+
+
+
+
IF EXIST "$(TargetDir)$(TargetName).pdb" IF EXIST "$(SolutionDir)pdb2mdb.exe" CALL "$(SolutionDir)pdb2mdb.exe" "$(TargetPath)"
diff --git a/src/RandomCharacterGenerator.KKS/KKS.RandomCharacterGenerator.csproj b/src/RandomCharacterGenerator.KKS/KKS.RandomCharacterGenerator.csproj
new file mode 100644
index 00000000..f844e617
--- /dev/null
+++ b/src/RandomCharacterGenerator.KKS/KKS.RandomCharacterGenerator.csproj
@@ -0,0 +1,177 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {7B2557EE-0C49-4931-B32D-82B01DD42890}
+ Library
+ Properties
+ KK_Plugins
+ KKS_RandomCharacterGenerator
+ v4.6
+ 512
+ true
+
+
+
+
+ true
+ full
+ false
+ ..\..\bin\
+ TRACE;DEBUG;KKS
+ prompt
+ 4
+ true
+
+
+ pdbonly
+ true
+ ..\..\bin\
+ TRACE;KKS
+ prompt
+ 4
+ true
+
+
+
+ ..\..\packages\IllusionLibs.BepInEx.Harmony.2.5.4\lib\net35\0Harmony.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.Assembly-CSharp.2021.9.17\lib\net46\Assembly-CSharp.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.Assembly-CSharp-firstpass.2021.9.17\lib\net46\Assembly-CSharp-firstpass.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.BepInEx.5.4.15\lib\net35\BepInEx.dll
+ False
+
+
+ ..\..\packages\IllusionModdingAPI.KKSAPI.1.29.1\lib\net46\KKSAPI.dll
+ False
+
+
+ ..\..\packages\ExtensibleSaveFormat.KoikatsuSunshine.16.8.0\lib\net46\KKS_ExtensibleSaveFormat.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.BepInEx.MonoMod.21.8.5.1\lib\net35\MonoMod.RuntimeDetour.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.BepInEx.MonoMod.21.8.5.1\lib\net35\MonoMod.Utils.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.CoreModule.2019.4.9\lib\net46\Sirenix.Serialization.dll
+ False
+
+
+
+
+
+
+
+
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniRx.2021.9.17\lib\net46\UniRx.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniTask.2021.9.17\lib\net46\UniTask.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniTask.2021.9.17\lib\net46\UniTask.Addressables.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniTask.2021.9.17\lib\net46\UniTask.DOTween.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniTask.2021.9.17\lib\net46\UniTask.Linq.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UniTask.2021.9.17\lib\net46\UniTask.TextMeshPro.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.CoreModule.2019.4.9\lib\net46\UnityEngine.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.AnimationModule.2019.4.9\lib\net46\UnityEngine.AnimationModule.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.CoreModule.2019.4.9\lib\net46\UnityEngine.CoreModule.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.InputLegacyModule.2019.4.9\lib\net46\UnityEngine.InputLegacyModule.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.PhysicsModule.2019.4.9\lib\net46\UnityEngine.PhysicsModule.dll
+ False
+
+
+ ..\..\packages\IllusionLibs.KoikatsuSunshine.UnityEngine.UI.2019.4.9\lib\net46\UnityEngine.UI.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IF EXIST "$(TargetDir)$(TargetName).pdb" IF EXIST "$(SolutionDir)pdb2mdb.exe" CALL "$(SolutionDir)pdb2mdb.exe" "$(TargetPath)"
+IF EXIST "$(SolutionDir)PostBuild.bat" CALL "$(SolutionDir)PostBuild.bat" "$(TargetPath)" KKS
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/RandomCharacterGenerator.KKS/packages.config b/src/RandomCharacterGenerator.KKS/packages.config
new file mode 100644
index 00000000..df1b9dd1
--- /dev/null
+++ b/src/RandomCharacterGenerator.KKS/packages.config
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file