I dont know what i am doing
This commit is contained in:
@@ -88,6 +88,10 @@
|
||||
<Reference Include="UnityEngine">
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\BONEWORKS\BONEWORKS\MelonLoader\Managed\UnityEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\BONEWORKS\BONEWORKS\MelonLoader\Managed\UnityEngine.AnimationModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.CoreModule">
|
||||
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\BONEWORKS\BONEWORKS\MelonLoader\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
</Reference>
|
||||
|
||||
@@ -3,15 +3,17 @@ using BoneSync.Networking.LobbyManager;
|
||||
using BoneSync.Networking.Transport;
|
||||
using MelonLoader;
|
||||
using HarmonyLib;
|
||||
using UnityEngine;
|
||||
using BoneSync.PlayerRigs;
|
||||
|
||||
namespace BoneSync
|
||||
{
|
||||
public static class BuildInfo
|
||||
{
|
||||
public const string Name = "BoneSync"; // Name of the Mod. (MUST BE SET)
|
||||
public const string Author = null; // Author of the Mod. (Set as null if none)
|
||||
public const string Author = "aarov"; // Author of the Mod. (Set as null if none)
|
||||
public const string Company = null; // Company that made the Mod. (Set as null if none)
|
||||
public const string Version = "1.0.0"; // Version of the Mod. (MUST BE SET)
|
||||
public const string Version = "0.0.1"; // Version of the Mod. (MUST BE SET)
|
||||
public const string DownloadLink = null; // Download Link for the Mod. (Set as null if none)
|
||||
}
|
||||
|
||||
@@ -32,7 +34,7 @@ namespace BoneSync
|
||||
|
||||
public static void PatchAll()
|
||||
{
|
||||
HarmonyLib.Harmony harmony = new HarmonyLib.Harmony("com.bonesync");
|
||||
HarmonyLib.Harmony harmony = new HarmonyLib.Harmony("com.aarov.bonesync");
|
||||
harmony.PatchAll();
|
||||
}
|
||||
|
||||
@@ -54,6 +56,22 @@ namespace BoneSync
|
||||
public override void OnUpdate()
|
||||
{
|
||||
transport.Tick();
|
||||
PlayerRig.Tick();
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.P))
|
||||
{
|
||||
MelonLogger.Msg("P key pressed");
|
||||
PlayerRig playerRig = PlayerRig.InstantiatePlayerRigPrefab();
|
||||
if (playerRig == null)
|
||||
{
|
||||
MelonLogger.Error("Failed to instantiate player rig prefab");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
MelonLogger.Msg("Player rig instantiated");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnFixedUpdate()
|
||||
|
||||
@@ -18,12 +18,34 @@ namespace BoneSync.Networking.Transport
|
||||
{
|
||||
SteamNetworking.OnP2PSessionRequest += OnP2PSessionRequest;
|
||||
}
|
||||
|
||||
private List<SteamId> OpenP2PConnections = new List<SteamId>();
|
||||
private void OnP2PSessionRequest(SteamId steamId)
|
||||
{
|
||||
MelonLogger.Msg("P2P Request from " + steamId);
|
||||
if (BoneSync.lobby.GetPeers().Contains(steamId))
|
||||
{
|
||||
SteamNetworking.AcceptP2PSessionWithUser(steamId);
|
||||
if (!OpenP2PConnections.Contains(steamId))
|
||||
{
|
||||
OpenP2PConnections.Add(steamId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void CleanUp()
|
||||
{
|
||||
ulong[] peers = BoneSync.lobby.GetPeers();
|
||||
for (int i = 0; i < OpenP2PConnections.Count; i++)
|
||||
{
|
||||
SteamId peer = OpenP2PConnections[i];
|
||||
if (!peers.Contains(peer))
|
||||
{
|
||||
OpenP2PConnections.RemoveAt(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcessPacket(P2Packet steamPacket)
|
||||
@@ -35,8 +57,10 @@ namespace BoneSync.Networking.Transport
|
||||
Packet.OnPacketReceived(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Tick()
|
||||
{
|
||||
if (!SteamClient.IsValid) return false;
|
||||
int processed = 0;
|
||||
while (SteamNetworking.IsP2PPacketAvailable())
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@ using UnityEngine;
|
||||
using StressLevelZero;
|
||||
using StressLevelZero.Rig;
|
||||
using StressLevelZero.Player;
|
||||
using StressLevelZero.VRMK;
|
||||
|
||||
|
||||
namespace BoneSync.PlayerRigs
|
||||
@@ -16,14 +17,44 @@ namespace BoneSync.PlayerRigs
|
||||
{
|
||||
private const string RIGMANAGER_SCENE_NAME = "[RigManager (Default Brett)]";
|
||||
private static GameObject _rigPrefabCache = null;
|
||||
private static List<PlayerRig> _playerRigs = new List<PlayerRig>();
|
||||
|
||||
private Rig[] rigs;
|
||||
private GameObject playerRig;
|
||||
private RigManager rigManager;
|
||||
private SLZ_Body body;
|
||||
private CharacterAnimationManager characterAnimationManager;
|
||||
private Animator repAnimator;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static void Tick()
|
||||
{
|
||||
TryRegisterRigPrefab();
|
||||
foreach (PlayerRig playerRig in _playerRigs)
|
||||
{
|
||||
try
|
||||
{
|
||||
playerRig.UpdateRig();
|
||||
} catch (Exception e)
|
||||
{
|
||||
MelonLogger.Error(e.Message);
|
||||
//MelonLogger.Error("Failed to update player rig");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
public static void TryRegisterRigPrefab()
|
||||
{
|
||||
if (_rigPrefabCache) return;
|
||||
GetPlayerRigPrefab();
|
||||
}
|
||||
public static GameObject GetPlayerRigPrefab()
|
||||
{
|
||||
if (_rigPrefabCache == null)
|
||||
{
|
||||
// find the rig game object in the scene
|
||||
GameObject playerRig = GameObject.Find(RIGMANAGER_SCENE_NAME);
|
||||
if (playerRig == null)
|
||||
{
|
||||
@@ -32,35 +63,62 @@ namespace BoneSync.PlayerRigs
|
||||
}
|
||||
// create a clone of the rig
|
||||
GameObject playerRep = GameObject.Instantiate(playerRig);
|
||||
playerRep.gameObject.SetActive(false);
|
||||
playerRep.name = "[RigManager (Networked)]";
|
||||
|
||||
GameObject.DestroyImmediate(playerRep.transform.Find("[ControllerRig (SteamVR)]"));
|
||||
GameObject.DestroyImmediate(playerRep.transform.Find("OVRCameraRig"));
|
||||
GameObject.DestroyImmediate(playerRep.transform.Find("[UIRig]"));
|
||||
GameObject.DestroyImmediate(playerRep.transform.Find("AirParticles"));
|
||||
GameObject.DestroyImmediate(playerRep.transform.Find("Vignetter"));
|
||||
RigManager repRigManager = playerRep.GetComponent<RigManager>();
|
||||
repRigManager.oculusControllerRig.gameObject.SetActive(false);
|
||||
repRigManager.steamControllerRig.gameObject.SetActive(false);
|
||||
repRigManager.uiRig.gameObject.SetActive(false);
|
||||
repRigManager.enabled = false;
|
||||
|
||||
|
||||
_rigPrefabCache = playerRep;
|
||||
MelonLogger.Msg("Player rig prefab created");
|
||||
}
|
||||
return _rigPrefabCache;
|
||||
}
|
||||
|
||||
public static PlayerRig InstantiatePlayerRigPrefab()
|
||||
{
|
||||
GameObject playerRig = GetPlayerRigPrefab();
|
||||
if (playerRig == null)
|
||||
GameObject prefab = GetPlayerRigPrefab();
|
||||
if (prefab == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new PlayerRig(playerRig);
|
||||
GameObject go = GameObject.Instantiate(prefab);
|
||||
go.SetActive(true);
|
||||
PlayerRig playerRig = new PlayerRig(go);
|
||||
|
||||
return playerRig;
|
||||
|
||||
}
|
||||
|
||||
private PlayerRig(GameObject playerRig)
|
||||
private void UpdateRig()
|
||||
{
|
||||
this.playerRig = playerRig;
|
||||
rigs = playerRig.GetComponentsInChildren<Rig>();
|
||||
Rig rig = rigs[0];
|
||||
rig.DisableBallLoco();
|
||||
Vector3 velocity = Vector3.zero;
|
||||
Vector3 acceleration = Vector3.zero;
|
||||
//SkeletonRig skeletonRig = rigManager.gameWorldSkeletonRig;
|
||||
//skeletonRig.OnLateUpdate();
|
||||
rigManager.ControllerRig.gameObject.SetActive(false);
|
||||
characterAnimationManager.OnLateUpdate();
|
||||
body.FullBodyUpdate(velocity, acceleration);
|
||||
body.ArtToBlender.UpdateBlender();
|
||||
repAnimator.Update(Time.deltaTime);
|
||||
}
|
||||
private PlayerRig(GameObject go)
|
||||
{
|
||||
playerRig = go;
|
||||
rigManager = playerRig.GetComponent<RigManager>();
|
||||
rigManager.enabled = true;
|
||||
|
||||
UpdateRig();
|
||||
_playerRigs.Add(this);
|
||||
}
|
||||
|
||||
public void Destroy()
|
||||
{
|
||||
_playerRigs.Remove(this);
|
||||
GameObject.Destroy(playerRig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ using MelonLoader;
|
||||
[assembly: AssemblyVersion(BoneSync.BuildInfo.Version)]
|
||||
[assembly: AssemblyFileVersion(BoneSync.BuildInfo.Version)]
|
||||
[assembly: NeutralResourcesLanguage("en")]
|
||||
[assembly: MelonOptionalDependencies("xunit.assert", "xunit.core")] // users don't need to install xunit.assert and xunit.core to use this mod
|
||||
[assembly: MelonInfo(typeof(BoneSync.BoneSync), BoneSync.BuildInfo.Name, BoneSync.BuildInfo.Version, BoneSync.BuildInfo.Author, BoneSync.BuildInfo.DownloadLink)]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user