quantum-space-buddies/QSB/Player/PlayerEntanglementWatcher.cs

43 lines
926 B
C#
Raw Normal View History

2021-12-23 17:07:29 -08:00
using QSB.Messaging;
2021-12-23 13:49:47 -08:00
using QSB.Player.Messages;
2021-12-13 22:49:18 -08:00
using QSB.QuantumSync.WorldObjects;
2022-02-01 14:24:21 -08:00
using QSB.Utility;
2021-02-24 10:45:25 +00:00
using QSB.WorldSync;
2021-02-21 21:27:54 +00:00
using UnityEngine;
2022-03-02 19:46:33 -08:00
namespace QSB.Player;
internal class PlayerEntanglementWatcher : MonoBehaviour, IAddComponentOnStart
2021-02-21 21:27:54 +00:00
{
2022-03-02 19:46:33 -08:00
private QuantumObject _previousCollidingQuantumObject;
2021-06-18 22:38:32 +01:00
2022-03-02 19:46:33 -08:00
private void Update()
{
if (!QSBCore.IsInMultiplayer)
{
2022-03-02 19:46:33 -08:00
return;
}
2021-12-12 10:49:21 +00:00
2022-03-02 19:46:33 -08:00
if (!QSBWorldSync.AllObjectsReady)
{
return;
}
2021-06-18 22:38:32 +01:00
2022-03-02 19:46:33 -08:00
var controller = Locator.GetPlayerController();
if (controller == null)
{
return;
}
2022-03-02 19:46:33 -08:00
var collidingQuantumObject = controller._collidingQuantumObject;
if (_previousCollidingQuantumObject != collidingQuantumObject)
{
var objectId = collidingQuantumObject != null
? collidingQuantumObject.GetWorldObject<IQSBQuantumObject>().ObjectId
: -1;
2021-02-21 21:27:54 +00:00
2022-03-02 19:46:33 -08:00
new PlayerEntangledMessage(objectId).Send();
_previousCollidingQuantumObject = collidingQuantumObject;
2021-02-21 21:27:54 +00:00
}
}
}