Skip to content

Commit

Permalink
Migrate to BSIPA 4
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoco007 committed Mar 27, 2020
1 parent edf05c5 commit 976bc1e
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 49 deletions.
Binary file modified Libraries/IPA.Injector.dll
Binary file not shown.
Binary file modified Libraries/IPA.Loader.dll
Binary file not shown.
Binary file removed Libraries/Newtonsoft.Json.12.0.0.0.dll
Binary file not shown.
Binary file added Libraries/Newtonsoft.Json.dll
Binary file not shown.
5 changes: 3 additions & 2 deletions Source/CustomAvatar/CustomAvatar.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@
<Reference Include="Main">
<HintPath>..\..\Libraries\Main.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json.12.0.0.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Libraries\Newtonsoft.Json.12.0.0.0.dll</HintPath>
<HintPath>..\..\Libraries\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand Down Expand Up @@ -137,6 +137,7 @@
<Compile Include="AvatarLayers.cs" />
<Compile Include="Avatar\AvatarFingerTracking.cs" />
<Compile Include="Avatar\BodyAwareBehaviour.cs" />
<Compile Include="KeyboardInputHandler.cs" />
<Compile Include="UI\AvatarListItem.cs" />
<Compile Include="AvatarManager.cs" />
<Compile Include="AvatarTailor.cs" />
Expand Down
40 changes: 40 additions & 0 deletions Source/CustomAvatar/KeyboardInputHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using CustomAvatar.Utilities;
using UnityEngine;

namespace CustomAvatar
{
internal class KeyboardInputHandler : MonoBehaviour
{
private void Update()
{
AvatarManager avatarManager = AvatarManager.instance;

if (Input.GetKeyDown(KeyCode.PageDown))
{
avatarManager.SwitchToNextAvatar();
}
else if (Input.GetKeyDown(KeyCode.PageUp))
{
avatarManager.SwitchToPreviousAvatar();
}
else if (Input.GetKeyDown(KeyCode.Home))
{
SettingsManager.settings.isAvatarVisibleInFirstPerson = !SettingsManager.settings.isAvatarVisibleInFirstPerson;
Plugin.logger.Info($"{(SettingsManager.settings.isAvatarVisibleInFirstPerson ? "Enabled" : "Disabled")} first person visibility");
avatarManager.currentlySpawnedAvatar?.OnFirstPersonEnabledChanged();
}
else if (Input.GetKeyDown(KeyCode.End))
{
SettingsManager.settings.resizeMode = (AvatarResizeMode) (((int)SettingsManager.settings.resizeMode + 1) % 3);
Plugin.logger.Info($"Set resize mode to {SettingsManager.settings.resizeMode}");
avatarManager.ResizeCurrentAvatar();
}
else if (Input.GetKeyDown(KeyCode.Insert))
{
SettingsManager.settings.enableFloorAdjust = !SettingsManager.settings.enableFloorAdjust;
Plugin.logger.Info($"{(SettingsManager.settings.enableFloorAdjust ? "Enabled" : "Disabled")} floor adjust");
avatarManager.ResizeCurrentAvatar();
}
}
}
}
58 changes: 15 additions & 43 deletions Source/CustomAvatar/Plugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
using UnityEngine;
using UnityEngine.SceneManagement;
using Zenject;
using Input = UnityEngine.Input;
using Logger = IPA.Logging.Logger;
using Object = UnityEngine.Object;

namespace CustomAvatar
{
internal class Plugin : IBeatSaberPlugin
[Plugin(RuntimeOptions.SingleStartInit)]
internal class Plugin
{
private GameScenesManager _scenesManager;
private GameObject _mirrorContainer;
Expand All @@ -24,26 +25,35 @@ internal class Plugin : IBeatSaberPlugin

public static Logger logger { get; private set; }

public void Init(Logger logger)
[Init]
public Plugin(Logger logger)
{
Plugin.logger = logger;
instance = this;
}

public void OnApplicationStart()
[OnStart]
public void OnStart()
{
SettingsManager.LoadSettings();
AvatarManager.instance.LoadAvatarFromSettingsAsync();
SceneManager.sceneLoaded += OnSceneLoaded;

KeyboardInputHandler keyboardInputHandler = new GameObject(nameof(KeyboardInputHandler)).AddComponent<KeyboardInputHandler>();
Object.DontDestroyOnLoad(keyboardInputHandler.gameObject);
}

public void OnApplicationQuit()
[OnExit]
public void OnExit()
{
if (_scenesManager != null)
{
_scenesManager.transitionDidFinishEvent -= sceneTransitionDidFinish;
_scenesManager.transitionDidFinishEvent -= SceneTransitionDidFinish;
}

SceneManager.sceneLoaded -= OnSceneLoaded;

SettingsManager.SaveSettings();
}

Expand Down Expand Up @@ -108,49 +118,11 @@ private void SceneTransitionDidFinish(ScenesTransitionSetupDataSO setupData, DiC
}
}

public void OnUpdate()
{
AvatarManager avatarManager = AvatarManager.instance;

if (Input.GetKeyDown(KeyCode.PageDown))
{
avatarManager.SwitchToNextAvatar();
}
else if (Input.GetKeyDown(KeyCode.PageUp))
{
avatarManager.SwitchToPreviousAvatar();
}
else if (Input.GetKeyDown(KeyCode.Home))
{
SettingsManager.settings.isAvatarVisibleInFirstPerson = !SettingsManager.settings.isAvatarVisibleInFirstPerson;
logger.Info($"{(SettingsManager.settings.isAvatarVisibleInFirstPerson ? "Enabled" : "Disabled")} first person visibility");
avatarManager.currentlySpawnedAvatar?.OnFirstPersonEnabledChanged();
}
else if (Input.GetKeyDown(KeyCode.End))
{
SettingsManager.settings.resizeMode = (AvatarResizeMode) (((int)SettingsManager.settings.resizeMode + 1) % 3);
logger.Info($"Set resize mode to {SettingsManager.settings.resizeMode}");
avatarManager.ResizeCurrentAvatar();
}
else if (Input.GetKeyDown(KeyCode.Insert))
{
SettingsManager.settings.enableFloorAdjust = !SettingsManager.settings.enableFloorAdjust;
logger.Info($"{(SettingsManager.settings.enableFloorAdjust ? "Enabled" : "Disabled")} floor adjust");
avatarManager.ResizeCurrentAvatar();
}
}

private void SetCameraCullingMask(Camera camera)
{
logger.Debug("Adding third person culling mask to " + camera.name);

camera.cullingMask &= ~(1 << AvatarLayers.OnlyInThirdPerson);
}

public void OnFixedUpdate() { }

public void OnSceneUnloaded(Scene scene) { }

public void OnActiveSceneChanged(Scene prevScene, Scene nextScene) { }
}
}
4 changes: 2 additions & 2 deletions Source/CustomAvatar/UI/AvatarListFlowCoordinator.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Linq;
using BeatSaberMarkupLanguage;
using CustomAvatar.Utilities;
using HMUI;
using IPA.Utilities;
using UnityEngine;

namespace CustomAvatar.UI
Expand Down Expand Up @@ -36,7 +36,7 @@ protected override void BackButtonWasPressed(ViewController topViewController)
{
_mainScreen.transform.localScale = _mainScreenScale;
var mainFlowCoordinator = Resources.FindObjectsOfTypeAll<MainFlowCoordinator>().First();
mainFlowCoordinator.InvokePrivateMethod("DismissFlowCoordinator", new object[] { this, null, false });
mainFlowCoordinator.InvokePrivateMethod("DismissFlowCoordinator", this, null, false);
}

protected override void DidDeactivate(DeactivationType deactivationType) { }
Expand Down
8 changes: 6 additions & 2 deletions Source/CustomAvatar/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@
"version": "5.0.0-beta.7",
"features": [],
"dependsOn": {
"BSIPA": "^3.13.0",
"BSIPA": "^4.0.0",
"BeatSaberMarkupLanguage": "^1.0.0",
"DynamicOpenVR": "^0.2.0"
}
},
"files": [
"DynamicOpenVR\\Actions\\customavatars.json",
"DynamicOpenVR\\Bindings\\customavatars_knuckles.json"
]
}

0 comments on commit 976bc1e

Please sign in to comment.