This commit is contained in:
JohnCorby 2022-01-12 20:10:04 -08:00
parent 50ffb7de12
commit ca7accb962
3 changed files with 20 additions and 22 deletions

View File

@ -16,7 +16,6 @@ using QSB.Tools.TranslatorTool.TranslationSync.Messages;
using QSB.Tools.TranslatorTool.TranslationSync.WorldObjects;
using QSB.TornadoSync.Messages;
using QSB.TornadoSync.WorldObjects;
using QSB.TriggerSync;
using QSB.TriggerSync.Messages;
using QSB.TriggerSync.WorldObjects;
using QSB.Utility;

View File

@ -26,8 +26,8 @@ namespace QSB.TriggerSync.WorldObjects
public override void Init()
{
AttachedObject.OnEntry += OnEntry;
AttachedObject.OnExit += OnExit;
AttachedObject.OnEntry += OnLocalEnter;
AttachedObject.OnExit += OnLocalExit;
QSBPlayerManager.OnRemovePlayer += OnPlayerLeave;
@ -35,32 +35,24 @@ namespace QSB.TriggerSync.WorldObjects
{
if (AttachedObject._trackedObjects == null)
{
DebugLog.DebugWrite($"{LogName} tracked objects == null", MessageType.Warning);
DebugLog.DebugWrite($"{LogName} _trackedObjects == null", MessageType.Warning);
}
else if (AttachedObject._trackedObjects.Contains(Locator.GetPlayerDetector()))
else if (AttachedObject.IsTrackingObject(Locator.GetPlayerDetector()))
{
((IQSBTrigger)this).SendMessage(new TriggerMessage(true));
OnLocalEnter(Locator.GetPlayerDetector());
}
});
}
public override void OnRemoval()
{
AttachedObject.OnEntry -= OnEntry;
AttachedObject.OnExit -= OnExit;
AttachedObject.OnEntry -= OnLocalEnter;
AttachedObject.OnExit -= OnLocalExit;
QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave;
}
private void OnPlayerLeave(PlayerInfo player)
{
if (Players.Contains(player))
{
Exit(player);
}
}
private void OnEntry(GameObject hitObj)
private void OnLocalEnter(GameObject hitObj)
{
if (hitObj.CompareTag("PlayerDetector"))
{
@ -68,7 +60,7 @@ namespace QSB.TriggerSync.WorldObjects
}
}
private void OnExit(GameObject hitObj)
private void OnLocalExit(GameObject hitObj)
{
if (hitObj.CompareTag("PlayerDetector"))
{
@ -76,6 +68,14 @@ namespace QSB.TriggerSync.WorldObjects
}
}
private void OnPlayerLeave(PlayerInfo player)
{
if (Players.Contains(player))
{
Exit(player);
}
}
public void Enter(PlayerInfo player)
{
if (!Players.SafeAdd(player))
@ -100,8 +100,8 @@ namespace QSB.TriggerSync.WorldObjects
OnExit(player);
}
protected virtual void OnEnter(PlayerInfo player) { }
protected abstract void OnEnter(PlayerInfo player);
protected virtual void OnExit(PlayerInfo player) { }
protected abstract void OnExit(PlayerInfo player);
}
}

View File

@ -1,7 +1,6 @@
using OWML.Common;
using QSB.ConversationSync.Patches;
using QSB.LogSync;
using QSB.TriggerSync;
using QSB.TriggerSync.WorldObjects;
using QSB.Utility;
using System;
@ -169,7 +168,7 @@ namespace QSB.WorldSync
var obj = new TWorldObject
{
AttachedObject = item,
ObjectId = WorldObjects.Count,
ObjectId = WorldObjects.Count
};
obj.Init();