Aaa
This commit is contained in:
@@ -21,6 +21,7 @@ namespace BoneSync.Networking.Messages
|
|||||||
public sceneChangeType sceneChangeType;
|
public sceneChangeType sceneChangeType;
|
||||||
public string sceneName;
|
public string sceneName;
|
||||||
public byte sceneIndex;
|
public byte sceneIndex;
|
||||||
|
public bool reloadScene;
|
||||||
}
|
}
|
||||||
[PacketType(PacketType.SceneChange), PacketReliability(PacketReliability.Reliable), AlwaysExecute]
|
[PacketType(PacketType.SceneChange), PacketReliability(PacketReliability.Reliable), AlwaysExecute]
|
||||||
internal class SceneChangeMessage : NetworkMessage
|
internal class SceneChangeMessage : NetworkMessage
|
||||||
@@ -32,6 +33,7 @@ namespace BoneSync.Networking.Messages
|
|||||||
{
|
{
|
||||||
_sceneChangeInfo = sceneChangeInfo;
|
_sceneChangeInfo = sceneChangeInfo;
|
||||||
byteEncoder.WriteByte((byte)_sceneChangeInfo.sceneChangeType);
|
byteEncoder.WriteByte((byte)_sceneChangeInfo.sceneChangeType);
|
||||||
|
byteEncoder.WriteBool(_sceneChangeInfo.reloadScene);
|
||||||
switch (_sceneChangeInfo.sceneChangeType)
|
switch (_sceneChangeInfo.sceneChangeType)
|
||||||
{
|
{
|
||||||
case sceneChangeType.FromIndex:
|
case sceneChangeType.FromIndex:
|
||||||
@@ -51,6 +53,7 @@ namespace BoneSync.Networking.Messages
|
|||||||
byteEncoder.SetBytes(packet.Data);
|
byteEncoder.SetBytes(packet.Data);
|
||||||
_sceneChangeInfo = new SceneChangeInfo();
|
_sceneChangeInfo = new SceneChangeInfo();
|
||||||
_sceneChangeInfo.sceneChangeType = (sceneChangeType)byteEncoder.ReadByte();
|
_sceneChangeInfo.sceneChangeType = (sceneChangeType)byteEncoder.ReadByte();
|
||||||
|
_sceneChangeInfo.reloadScene = byteEncoder.ReadBool();
|
||||||
switch (_sceneChangeInfo.sceneChangeType)
|
switch (_sceneChangeInfo.sceneChangeType)
|
||||||
{
|
{
|
||||||
case sceneChangeType.FromIndex:
|
case sceneChangeType.FromIndex:
|
||||||
@@ -69,7 +72,20 @@ namespace BoneSync.Networking.Messages
|
|||||||
public override void Execute()
|
public override void Execute()
|
||||||
{
|
{
|
||||||
SyncLogger.Msg("SceneChangeMessage: " + _sceneChangeInfo.sceneName + " " + _sceneChangeInfo.sceneIndex);
|
SyncLogger.Msg("SceneChangeMessage: " + _sceneChangeInfo.sceneName + " " + _sceneChangeInfo.sceneIndex);
|
||||||
BoneworksSceneManager.LoadScene(_sceneChangeInfo.sceneIndex);
|
switch (_sceneChangeInfo.sceneChangeType)
|
||||||
|
{
|
||||||
|
case sceneChangeType.FromIndex:
|
||||||
|
if (!_sceneChangeInfo.reloadScene && _sceneChangeInfo.sceneIndex == BoneworksSceneManager.currentSceneIndex) return; // don't reload the scene if it's already loaded
|
||||||
|
BoneworksSceneManager.LoadScene(_sceneChangeInfo.sceneIndex);
|
||||||
|
break;
|
||||||
|
case sceneChangeType.FromName:
|
||||||
|
BoneworksSceneManager.LoadScene(_sceneChangeInfo.sceneName);
|
||||||
|
break;
|
||||||
|
case sceneChangeType.CustomMap:
|
||||||
|
BoneworksSceneManager.LoadScene(_sceneChangeInfo.sceneName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(nameof(UnityEvent.Invoke)), HarmonyPrefix]
|
[HarmonyPatch(nameof(UnityEvent.Invoke)), HarmonyPrefix]
|
||||||
private static bool InvokePrefix(UnityEvent __instance)
|
private static bool InvokePrefix(UnityEvent __instance)
|
||||||
{
|
{
|
||||||
int hash = __instance.GetHashCode();
|
//int hash = __instance.GetHashCode();
|
||||||
UnityEventPatch<ButtonToggle> patch = UnityEventPatch<ButtonToggle>.TryGetPatch(__instance);
|
UnityEventPatch<ButtonToggle> patch = UnityEventPatch<ButtonToggle>.TryGetPatch(__instance);
|
||||||
if (patch != null)
|
if (patch != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(typeof(BoneworksSceneManager))]
|
[HarmonyPatch(typeof(BoneworksSceneManager))]
|
||||||
internal class SceneManagerPatches
|
internal class SceneManagerPatches
|
||||||
{
|
{
|
||||||
[HarmonyPatch(nameof(BoneworksSceneManager.LoadScene), new Type[] { typeof(int) }), HarmonyPrefix]
|
/*[HarmonyPatch(nameof(BoneworksSceneManager.LoadScene), new Type[] { typeof(int) }), HarmonyPrefix]
|
||||||
private static void LoadSceneIndexPrefix(int sceneBuildIndex)
|
private static void LoadSceneIndexPrefix(int sceneBuildIndex)
|
||||||
{
|
{
|
||||||
SyncLogger.Msg("LoadScenePrefix: " + sceneBuildIndex);
|
SyncLogger.Msg("LoadScenePrefix: " + sceneBuildIndex);
|
||||||
@@ -36,6 +36,6 @@ namespace BoneSync.Patching
|
|||||||
//SyncLogger.Msg("Host is loading scene, sending message to clients...");
|
//SyncLogger.Msg("Host is loading scene, sending message to clients...");
|
||||||
//SceneSync.SendSceneSyncMessage(sceneName);
|
//SceneSync.SendSceneSyncMessage(sceneName);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(typeof(SceneZone))]
|
[HarmonyPatch(typeof(SceneZone))]
|
||||||
public static class SceneZonePatch
|
public static class SceneZonePatch
|
||||||
{
|
{
|
||||||
[HarmonyPatch(nameof(SceneZone.OnTriggerEnter)), HarmonyPrefix]
|
/*[HarmonyPatch(nameof(SceneZone.OnTriggerEnter)), HarmonyPrefix]
|
||||||
public static bool EnterPrefix(SceneZone __instance, Collider other)
|
public static bool EnterPrefix(SceneZone __instance, Collider other)
|
||||||
{
|
{
|
||||||
if (other.CompareTag("Player"))
|
if (other.CompareTag("Player"))
|
||||||
@@ -71,7 +71,7 @@ namespace BoneSync.Patching
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
[HarmonyPatch(nameof(SceneZone.OnTriggerExit)), HarmonyPrefix]
|
[HarmonyPatch(nameof(SceneZone.OnTriggerExit)), HarmonyPrefix]
|
||||||
public static bool ExitPrefix(SceneZone __instance, Collider other)
|
public static bool ExitPrefix(SceneZone __instance, Collider other)
|
||||||
@@ -88,6 +88,7 @@ namespace BoneSync.Patching
|
|||||||
[HarmonyPatch(typeof(PlayerTrigger))]
|
[HarmonyPatch(typeof(PlayerTrigger))]
|
||||||
public static class PlayerTriggerPatch
|
public static class PlayerTriggerPatch
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerEnter)), HarmonyPrefix]
|
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerEnter)), HarmonyPrefix]
|
||||||
public static bool EnterPrefix(PlayerTrigger __instance, Collider other)
|
public static bool EnterPrefix(PlayerTrigger __instance, Collider other)
|
||||||
{
|
{
|
||||||
@@ -98,8 +99,9 @@ namespace BoneSync.Patching
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
// only patch exit, as we want to allow activating a trigger always
|
// only patch exit, as we want to allow activating a trigger always
|
||||||
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerExit)), HarmonyPrefix]
|
[HarmonyPatch(nameof(PlayerTrigger.OnTriggerExit)), HarmonyPrefix]
|
||||||
public static bool ExitPrefix(PlayerTrigger __instance, Collider other)
|
public static bool ExitPrefix(PlayerTrigger __instance, Collider other)
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ namespace BoneSync.Sync
|
|||||||
SyncLogger.Msg("Scene initialized: " + SceneName);
|
SyncLogger.Msg("Scene initialized: " + SceneName);
|
||||||
RenameDuplicateSceneTransforms(scene);
|
RenameDuplicateSceneTransforms(scene);
|
||||||
SpawnableManager.AddUnregisteredSpawnables();
|
SpawnableManager.AddUnregisteredSpawnables();
|
||||||
|
SendSceneSyncMessage(buildIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Initialize()
|
public static void Initialize()
|
||||||
|
|||||||
Reference in New Issue
Block a user