Skip to content

Commit

Permalink
TitleShortcuts - Add KoikatuSunshine version
Browse files Browse the repository at this point in the history
  • Loading branch information
ManlyMarco committed Nov 9, 2022
1 parent 9fdb8ad commit feebcde
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 1 deletion.
12 changes: 11 additions & 1 deletion KeelPlugins.sln
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FreeHDefaults.Core", "src\F
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TitleShortcuts.HoneySelect2", "src\TitleShortcuts.HoneySelect2\TitleShortcuts.HoneySelect2.csproj", "{CA3C684F-A778-4C76-8CA2-DFB93A8CAC13}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TitleShortcuts.KoikatuSunshine", "src\TitleShortcuts.KoikatuSunshine\TitleShortcuts.KoikatuSunshine.csproj", "{74EA67FD-3A71-4043-ABD5-B8907D70938C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -397,6 +399,10 @@ Global
{CA3C684F-A778-4C76-8CA2-DFB93A8CAC13}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CA3C684F-A778-4C76-8CA2-DFB93A8CAC13}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CA3C684F-A778-4C76-8CA2-DFB93A8CAC13}.Release|Any CPU.Build.0 = Release|Any CPU
{74EA67FD-3A71-4043-ABD5-B8907D70938C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74EA67FD-3A71-4043-ABD5-B8907D70938C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74EA67FD-3A71-4043-ABD5-B8907D70938C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74EA67FD-3A71-4043-ABD5-B8907D70938C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -494,6 +500,7 @@ Global
{A7AFC683-C17F-4B97-8127-122BAD10FBE8} = {A541BB96-39B7-44C7-98A1-C934EFBD52AE}
{D77A4720-B234-4A59-B7EF-7F9ABEA81CD3} = {A541BB96-39B7-44C7-98A1-C934EFBD52AE}
{CA3C684F-A778-4C76-8CA2-DFB93A8CAC13} = {E462D3D8-0715-45C9-869C-F1FA8CD2F5CD}
{74EA67FD-3A71-4043-ABD5-B8907D70938C} = {E462D3D8-0715-45C9-869C-F1FA8CD2F5CD}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CECC9C6B-8041-49A1-B7FD-DC89264B7393}
Expand All @@ -509,7 +516,7 @@ Global
src\Common.Unity\Common.Unity.projitems*{0d28ab7e-cc4c-4ec5-b322-876641d7426b}*SharedItemsImports = 4
src\DefaultParamEditor.Core\DefaultParamEditor.Core.projitems*{0d28ab7e-cc4c-4ec5-b322-876641d7426b}*SharedItemsImports = 4
src\Common.Core\Common.Core.projitems*{0dfa53ab-37b6-4aca-b5d2-4441f62cc15a}*SharedItemsImports = 5
src\Common.Koikatu\Common.Koikatu.projitems*{0dfa53ab-37b6-4aca-b5d2-4441f62cc15a}*SharedItemsImports = 5
src\Common.KoikatsuSunshine\Common.KoikatsuSunshine.projitems*{0dfa53ab-37b6-4aca-b5d2-4441f62cc15a}*SharedItemsImports = 5
src\RealPOV.Core.Koikatu\RealPOV.Core.Koikatu.projitems*{0dfa53ab-37b6-4aca-b5d2-4441f62cc15a}*SharedItemsImports = 5
src\RealPOV.Core\RealPOV.Core.projitems*{0dfa53ab-37b6-4aca-b5d2-4441f62cc15a}*SharedItemsImports = 5
src\Common.AISyoujyo\Common.AISyoujyo.projitems*{0efad08f-d9a9-49a0-aaeb-a47e9b60fb91}*SharedItemsImports = 4
Expand Down Expand Up @@ -577,6 +584,9 @@ Global
src\Common.Core\Common.Core.projitems*{736f80a7-88a4-4508-b6c7-b36fdd175ae4}*SharedItemsImports = 4
src\Common.HoneySelect2\Common.HoneySelect2.projitems*{736f80a7-88a4-4508-b6c7-b36fdd175ae4}*SharedItemsImports = 4
src\DefaultStudioScene.Core\DefaultStudioScene.Core.projitems*{736f80a7-88a4-4508-b6c7-b36fdd175ae4}*SharedItemsImports = 4
src\Common.Core\Common.Core.projitems*{74ea67fd-3a71-4043-abd5-b8907d70938c}*SharedItemsImports = 5
src\Common.KoikatsuSunshine\Common.KoikatsuSunshine.projitems*{74ea67fd-3a71-4043-abd5-b8907d70938c}*SharedItemsImports = 5
src\TitleShortcuts.Core\TitleShortcuts.Core.projitems*{74ea67fd-3a71-4043-abd5-b8907d70938c}*SharedItemsImports = 5
src\UIUtility\UIUtility.projitems*{7f30866a-1b8b-40f1-8960-0e203eede225}*SharedItemsImports = 13
src\Common.Core\Common.Core.projitems*{805950cd-b415-4a41-97e2-7bce459c08a0}*SharedItemsImports = 5
src\Common.Koikatu\Common.Koikatu.projitems*{805950cd-b415-4a41-97e2-7bce459c08a0}*SharedItemsImports = 5
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\BuildSettings.Common.props" />
<Import Project="..\BuildSettings.KoikatsuSunshine.props" />
<ItemGroup>
<PackageReference Include="BepInEx.Core" Version="5.4.4" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.Assembly-CSharp" Version="2021.9.17" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.Assembly-CSharp-firstpass" Version="2021.9.17" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.UniTask" Version="2021.9.17" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.UnityEngine.CoreModule" Version="2019.4.9" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.UnityEngine.UI" Version="2019.4.9" />
<PackageReference Include="IllusionLibs.KoikatsuSunshine.UnityEngine.UIModule" Version="2019.4.9" />
</ItemGroup>
<Import Project="..\TitleShortcuts.Core\TitleShortcuts.Core.projitems" Label="Shared" />
<Import Project="..\Common.Core\Common.Core.projitems" Label="Shared" />
<Import Project="..\Common.KoikatsuSunshine\Common.KoikatsuSunshine.projitems" Label="Shared" />
</Project>
97 changes: 97 additions & 0 deletions src/TitleShortcuts.KoikatuSunshine/TitleShortcuts.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
using System;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using KeelPlugins.Koikatu;
using System.Collections;
using TitleShortcuts.Core;
using UnityEngine;

[assembly: System.Reflection.AssemblyFileVersion(TitleShortcuts.KoikatuSunshine.TitleShortcuts.Version)]

namespace TitleShortcuts.KoikatuSunshine
{
[BepInProcess(Constants.MainGameProcessName)]
//[BepInProcess(Constants.MainGameProcessNameSteam)]
[BepInPlugin(GUID, PluginName, Version)]
public class TitleShortcuts : TitleShortcutsCore
{
public const string Version = "1.3.0." + BuildNumber.Version;

private static ConfigEntry<KeyboardShortcut> StartFemaleMaker { get; set; }
private static ConfigEntry<KeyboardShortcut> StartMaleMaker { get; set; }
private static ConfigEntry<KeyboardShortcut> StartUploader { get; set; }
private static ConfigEntry<KeyboardShortcut> StartDownloader { get; set; }
private static ConfigEntry<KeyboardShortcut> StartFreeH { get; set; }
private static ConfigEntry<KeyboardShortcut> StartGameLoad { get; set; }

protected override void Awake()
{
base.Awake();

StartFemaleMaker = Config.Bind(SECTION_HOTKEYS, "Open female maker", new KeyboardShortcut(KeyCode.F));
StartMaleMaker = Config.Bind(SECTION_HOTKEYS, "Open male maker", new KeyboardShortcut(KeyCode.M));
StartUploader = Config.Bind(SECTION_HOTKEYS, "Open uploader", new KeyboardShortcut(KeyCode.U));
StartDownloader = Config.Bind(SECTION_HOTKEYS, "Open downloader", new KeyboardShortcut(KeyCode.D));
StartFreeH = Config.Bind(SECTION_HOTKEYS, "Start free H", new KeyboardShortcut(KeyCode.H));
StartGameLoad = Config.Bind(SECTION_HOTKEYS, "Open Load Game screen", new KeyboardShortcut(KeyCode.G));

Harmony.CreateAndPatchAll(GetType());
}

[HarmonyPrefix, HarmonyPatch(typeof(TitleScene), nameof(TitleScene.Start))]
private static void TitleStart(TitleScene __instance)
{
Plugin.StartCoroutine(TitleInput(__instance));
}

private static IEnumerator TitleInput(TitleScene titleScene)
{
do
{
yield return null;

if(StartFemaleMaker.Value.IsDown()) StartMode(titleScene.OnCustomFemale, "Starting female maker");
else if(StartMaleMaker.Value.IsDown()) StartMode(titleScene.OnCustomMale, "Starting male maker");
else if(StartUploader.Value.IsDown()) StartMode(titleScene.OnUploader, "Starting uploader");
else if(StartDownloader.Value.IsDown()) StartMode(titleScene.OnDownloader, "Starting downloader");
else if(StartFreeH.Value.IsDown()) StartMode(titleScene.OnOtherFreeH, "Starting free H");
else if(StartGameLoad.Value.IsDown()) StartMode(titleScene.OnLoad, "Opening Load Game screen");
}
while(titleScene);

void StartMode(Action action, string msg)
{
if(titleScene && (!FindObjectOfType<ConfigScene>() || !ConfigScene.active))
{
Log.Message(msg);
action();
titleScene = null;
}
}
}

[HarmonyPostfix, HarmonyPatch(typeof(FreeHScene), nameof(FreeHScene.Start))]
private static void TitleStart(FreeHScene __instance, ref IEnumerator __result)
{
var origResult = __result;
__result = new object[]{origResult, HSceneInput(__instance)}.GetEnumerator();
}

private static IEnumerator HSceneInput(FreeHScene freeHScene)
{
for(int i = 0; i < 4; i++)
yield return null;

while(freeHScene != null)
{
if(StartFreeH.Value.IsDown())
{
freeHScene.enterButton.onClick.Invoke();
freeHScene = null;
}
yield return null;
}
}
}
}

0 comments on commit feebcde

Please sign in to comment.