From 15728f0ca2820f6234d5a7b2b5d28b1afd56c9ea Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Tue, 25 Jan 2022 20:20:16 -0800 Subject: [PATCH] improve QSBGeyser slighty --- QSB/GeyserSync/WorldObjects/QSBGeyser.cs | 28 +++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/QSB/GeyserSync/WorldObjects/QSBGeyser.cs b/QSB/GeyserSync/WorldObjects/QSBGeyser.cs index a32c359a..b2625a8d 100644 --- a/QSB/GeyserSync/WorldObjects/QSBGeyser.cs +++ b/QSB/GeyserSync/WorldObjects/QSBGeyser.cs @@ -8,21 +8,33 @@ namespace QSB.GeyserSync.WorldObjects { public override void Init() { - AttachedObject.OnGeyserActivateEvent += () => HandleEvent(true); - AttachedObject.OnGeyserDeactivateEvent += () => HandleEvent(false); + if (QSBCore.IsHost) + { + AttachedObject.OnGeyserActivateEvent += OnActivate; + AttachedObject.OnGeyserDeactivateEvent += OnDeactivate; + } } - public override void SendResyncInfo(uint to) => - HandleEvent(AttachedObject._isActive); - - private void HandleEvent(bool state) + public override void OnRemoval() { if (QSBCore.IsHost) { - this.SendMessage(new GeyserMessage(state)); + AttachedObject.OnGeyserActivateEvent -= OnActivate; + AttachedObject.OnGeyserDeactivateEvent -= OnDeactivate; } } + public override void SendResyncInfo(uint to) + { + if (QSBCore.IsHost) + { + this.SendMessage(new GeyserMessage(AttachedObject._isActive)); + } + } + + private void OnActivate() => this.SendMessage(new GeyserMessage(true)); + private void OnDeactivate() => this.SendMessage(new GeyserMessage(false)); + public void SetState(bool state) { if (AttachedObject._isActive == state) @@ -40,4 +52,4 @@ namespace QSB.GeyserSync.WorldObjects } } } -} \ No newline at end of file +}