Merge branch 'dev' into tornadoes

This commit is contained in:
JohnCorby 2021-12-04 16:56:24 -08:00
commit 2bce5b5e3b
82 changed files with 279 additions and 238 deletions

View File

@ -8,6 +8,8 @@ namespace QSB.Anglerfish.Events
{
public class AnglerChangeStateEvent : QSBEvent<AnglerChangeStateMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBAngler>.AddListener(EventNames.QSBAnglerChangeState, Handler);
@ -26,11 +28,6 @@ namespace QSB.Anglerfish.Events
public override void OnReceiveRemote(bool isHost, AnglerChangeStateMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbAngler = QSBWorldSync.GetWorldFromId<QSBAngler>(message.ObjectId);
qsbAngler.TargetTransform = IdToTarget(message.TargetId);
qsbAngler.AttachedObject._localDisturbancePos = message.LocalDisturbancePos;

View File

@ -6,6 +6,8 @@ namespace QSB.Animation.NPC.Events
{
internal class NpcAnimationEvent : QSBEvent<NpcAnimationMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<AnimationEvent, int>.AddListener(EventNames.QSBNpcAnimEvent, Handler);
public override void CloseListener() => GlobalMessenger<AnimationEvent, int>.RemoveListener(EventNames.QSBNpcAnimEvent, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Animation.Player.Events
{
internal class AnimationTriggerEvent : QSBEvent<AnimationTriggerMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<uint, string>.AddListener(EventNames.QSBAnimTrigger, Handler);
public override void CloseListener() => GlobalMessenger<uint, string>.RemoveListener(EventNames.QSBAnimTrigger, Handler);
@ -21,7 +23,7 @@ namespace QSB.Animation.Player.Events
public override void OnReceiveRemote(bool server, AnimationTriggerMessage message)
{
var animationSync = QSBPlayerManager.GetSyncObject<AnimationSync>(message.AttachedNetId);
if (!WorldObjectManager.AllObjectsReady || animationSync == null)
if (animationSync == null)
{
return;
}

View File

@ -8,6 +8,8 @@ namespace QSB.Animation.Player.Events
{
public class ChangeAnimTypeEvent : QSBEvent<EnumMessage<AnimationType>>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<uint, AnimationType>.AddListener(EventNames.QSBChangeAnimType, Handler);
public override void CloseListener() => GlobalMessenger<uint, AnimationType>.RemoveListener(EventNames.QSBChangeAnimType, Handler);
@ -21,7 +23,7 @@ namespace QSB.Animation.Player.Events
public override void OnReceiveRemote(bool server, EnumMessage<AnimationType> message)
{
if (!WorldObjectManager.AllObjectsReady || !QSBPlayerManager.GetPlayer(message.AboutId).IsReady)
if (!QSBPlayerManager.GetPlayer(message.AboutId).IsReady)
{
return;
}

View File

@ -7,6 +7,8 @@ namespace QSB.Animation.Player.Events
{
public class PlayerSuitEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.SuitUp, HandleSuitUp);
@ -33,7 +35,7 @@ namespace QSB.Animation.Player.Events
var player = QSBPlayerManager.GetPlayer(message.AboutId);
player.SuitedUp = message.ToggleValue;
if (!WorldObjectManager.AllObjectsReady || !player.IsReady)
if (!player.IsReady)
{
return;
}

View File

@ -6,6 +6,8 @@ namespace QSB.AuthoritySync
{
public class AuthorityQueueEvent : QSBEvent<AuthorityQueueMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() =>
GlobalMessenger<QNetworkIdentity, bool>.AddListener(EventNames.QSBAuthorityQueue, Handler);
@ -27,11 +29,6 @@ namespace QSB.AuthoritySync
private static void OnReceive(AuthorityQueueMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
message.Identity.UpdateAuthQueue(message.FromId, message.Queue);
}
}

View File

@ -7,6 +7,8 @@ namespace QSB.CampfireSync.Events
{
internal class CampfireStateEvent : QSBEvent<EnumWorldObjectMessage<Campfire.State>>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, Campfire.State>.AddListener(EventNames.QSBCampfireState, Handler);
public override void CloseListener() => GlobalMessenger<int, Campfire.State>.RemoveListener(EventNames.QSBCampfireState, Handler);
@ -21,11 +23,6 @@ namespace QSB.CampfireSync.Events
public override void OnReceiveRemote(bool server, EnumWorldObjectMessage<Campfire.State> message)
{
if (!QSBSceneManager.IsInUniverse)
{
return;
}
var campfireObj = QSBWorldSync.GetWorldFromId<QSBCampfire>(message.ObjectId);
campfireObj.SetState(message.EnumValue);
}

View File

@ -7,6 +7,8 @@ namespace QSB.ClientServerStateSync.Events
{
internal class ClientStateEvent : QSBEvent<EnumMessage<ClientState>>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
=> GlobalMessenger<ClientState>.AddListener(EventNames.QSBClientState, Handler);

View File

@ -5,6 +5,8 @@ namespace QSB.ClientServerStateSync.Events
{
internal class ServerStateEvent : QSBEvent<EnumMessage<ServerState>>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
=> GlobalMessenger<ServerState>.AddListener(EventNames.QSBServerState, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ConversationSync.Events
{
public class ConversationEvent : QSBEvent<ConversationMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<uint, string, ConversationType>.AddListener(EventNames.QSBConversation, Handler);
public override void CloseListener() => GlobalMessenger<uint, string, ConversationType>.RemoveListener(EventNames.QSBConversation, Handler);
@ -22,11 +24,6 @@ namespace QSB.ConversationSync.Events
public override void OnReceiveRemote(bool server, ConversationMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
switch (message.EnumValue)
{
case ConversationType.Character:

View File

@ -8,6 +8,8 @@ namespace QSB.ConversationSync.Events
{
public class ConversationStartEndEvent : QSBEvent<ConversationStartEndMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, uint, bool>.AddListener(EventNames.QSBConversationStartEnd, Handler);
public override void CloseListener() => GlobalMessenger<int, uint, bool>.RemoveListener(EventNames.QSBConversationStartEnd, Handler);
@ -29,11 +31,6 @@ namespace QSB.ConversationSync.Events
return;
}
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var dialogueTree = QSBWorldSync.OldDialogueTrees[message.TreeId];
if (message.State)

View File

@ -5,8 +5,10 @@ namespace QSB.ConversationSync.Events
{
public class DialogueConditionEvent : QSBEvent<DialogueConditionMessage>
{
public override void SetupListener() => GlobalMessenger<string, bool>.AddListener(EventNames.DialogueCondition, Handler);
public override void CloseListener() => GlobalMessenger<string, bool>.RemoveListener(EventNames.DialogueCondition, Handler);
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<string, bool>.AddListener(EventNames.DialogueConditionChanged, Handler);
public override void CloseListener() => GlobalMessenger<string, bool>.RemoveListener(EventNames.DialogueConditionChanged, Handler);
private void Handler(string name, bool state) => SendEvent(CreateMessage(name, state));

View File

@ -8,6 +8,8 @@ namespace QSB.DeathSync.Events
{
internal class EndLoopEvent : QSBEvent<EnumMessage<EndLoopReason>>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<EndLoopReason>.AddListener(EventNames.QSBEndLoop, Handler);
public override void CloseListener() => GlobalMessenger<EndLoopReason>.RemoveListener(EventNames.QSBEndLoop, Handler);

View File

@ -8,6 +8,8 @@ namespace QSB.DeathSync.Events
{
public class PlayerDeathEvent : QSBEvent<PlayerDeathMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<DeathType>.AddListener(EventNames.QSBPlayerDeath, Handler);
public override void CloseListener() => GlobalMessenger<DeathType>.RemoveListener(EventNames.QSBPlayerDeath, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.DeathSync.Events
{
internal class StartLoopEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBStartLoop, Handler);
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBStartLoop, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ElevatorSync.Events
{
public class ElevatorEvent : QSBEvent<BoolWorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, bool>.AddListener(EventNames.QSBStartLift, Handler);
public override void CloseListener() => GlobalMessenger<int, bool>.RemoveListener(EventNames.QSBStartLift, Handler);

View File

@ -3,105 +3,104 @@
public static class EventNames
{
// Built into Outer Wilds -- don't change unless they change in-game!
public static string TurnOnFlashlight = "TurnOnFlashlight";
public static string TurnOffFlashlight = "TurnOffFlashlight";
public static string ProbeLauncherEquipped = "ProbeLauncherEquipped";
public static string ProbeLauncherUnequipped = "ProbeLauncherUnequipped";
public static string EquipSignalscope = "EquipSignalscope";
public static string UnequipSignalscope = "UnequipSignalscope";
public static string SuitUp = "SuitUp";
public static string RemoveSuit = "RemoveSuit";
public static string EquipTranslator = "EquipTranslator";
public static string UnequipTranslator = "UnequipTranslator";
public static string RestartTimeLoop = "RestartTimeLoop";
public static string WakeUp = "WakeUp";
public static string DialogueCondition = "DialogueConditionChanged";
public static string EnterQuantumMoon = "PlayerEnterQuantumMoon";
public static string ExitQuantumMoon = "PlayerExitQuantumMoon";
public static string EnterRoastingMode = "EnterRoastingMode";
public static string ExitRoastingMode = "ExitRoastingMode";
public static string EnterFlightConsole = "EnterFlightConsole";
public static string ExitFlightConsole = "ExitFlightConsole";
public static string EnterShip = "EnterShip";
public static string ExitShip = "ExitShip";
public const string TurnOnFlashlight = nameof(TurnOnFlashlight);
public const string TurnOffFlashlight = nameof(TurnOffFlashlight);
public const string ProbeLauncherEquipped = nameof(ProbeLauncherEquipped);
public const string ProbeLauncherUnequipped = nameof(ProbeLauncherUnequipped);
public const string EquipSignalscope = nameof(EquipSignalscope);
public const string UnequipSignalscope = nameof(UnequipSignalscope);
public const string SuitUp = nameof(SuitUp);
public const string RemoveSuit = nameof(RemoveSuit);
public const string EquipTranslator = nameof(EquipTranslator);
public const string UnequipTranslator = nameof(UnequipTranslator);
public const string WakeUp = nameof(WakeUp);
public const string DialogueConditionChanged = nameof(DialogueConditionChanged);
public const string PlayerEnterQuantumMoon = nameof(PlayerEnterQuantumMoon);
public const string PlayerExitQuantumMoon = nameof(PlayerExitQuantumMoon);
public const string EnterRoastingMode = nameof(EnterRoastingMode);
public const string ExitRoastingMode = nameof(ExitRoastingMode);
public const string EnterFlightConsole = nameof(EnterFlightConsole);
public const string ExitFlightConsole = nameof(ExitFlightConsole);
public const string EnterShip = nameof(EnterShip);
public const string ExitShip = nameof(ExitShip);
// Custom event names -- change if you want! These can be anything, as long as both
// sides of the GlobalMessenger (fireevent and addlistener) reference the same thing.
public static string QSBPlayerDeath = "QSBPlayerDeath";
public static string QSBPlayerJoin = "QSBPlayerJoin";
public static string QSBPlayerReady = "QSBPlayerReady";
public static string QSBRequestStateResync = "QSBPlayerStatesRequest";
public static string QSBServerTime = "QSBServerTime";
public static string QSBStartLift = "QSBStartLift";
public static string QSBGeyserState = "QSBGeyserState";
public static string QSBOrbSlot = "QSBOrbSlot";
public static string QSBOrbUser = "QSBOrbUser";
public static string QSBConversation = "QSBConversation";
public static string QSBConversationStartEnd = "QSBConversationStartEnd";
public static string QSBChangeAnimType = "QSBPlayInstrument";
public static string QSBPlayerInformation = "QSBServerSendPlayerStates";
public static string QSBRevealFact = "QSBRevealFact";
public static string QSBSocketStateChange = "QSBSocketStateChange";
public static string QSBMultiStateChange = "QSBMultiStateChange";
public static string QSBQuantumShuffle = "QSBQuantumShuffle";
public static string QSBQuantumAuthority = "QSBQuantumAuthority";
public static string QSBMoonStateChange = "QSBMoonStateChange";
public static string QSBIdentifyFrequency = "QSBIdentifyFrequency";
public static string QSBIdentifySignal = "QSBIdentifySignal";
public static string QSBTextTranslated = "QSBTextTranslated";
public static string QSBEnterShrine = "QSBEnterShrine";
public static string QSBExitShrine = "QSBExitShrine";
public static string QSBPlayerEntangle = "QSBPlayerEntangle";
public static string QSBDropItem = "QSBDropItem";
public static string QSBSocketItem = "QSBSocketItem";
public static string QSBMoveToCarry = "QSBMoveToCarry";
public static string QSBStartStatue = "QSBStartStatue";
public static string QSBPlayerKick = "QSBPlayerKick";
public static string QSBEnterPlatform = "QSBEnterPlatform";
public static string QSBExitPlatform = "QSBExitPlatform";
public static string QSBCampfireState = "QSBCampfireState";
public static string QSBMarshmallowEvent = "QSBMarshmallowEvent";
public static string QSBAnimTrigger = "QSBAnimTrigger";
public static string QSBEnterNonNomaiHeadZone = "QSBEnterNonNomaiHeadZone";
public static string QSBExitNonNomaiHeadZone = "QSBExitNonNomaiHeadZone";
public static string QSBNpcAnimEvent = "QSBNpcAnimEvent";
public static string QSBHatchState = "QSBHatchState";
public static string QSBEnableFunnel = "QSBEnableFunnel";
public static string QSBHullImpact = "QSBHullImpact";
public static string QSBHullDamaged = "QSBHullDamaged";
public static string QSBHullChangeIntegrity = "QSBHullChangeIntegrity";
public static string QSBHullRepaired = "QSBHullRepaired";
public static string QSBHullRepairTick = "QSBHullRepairTick";
public static string QSBComponentDamaged = "QSBComponentDamaged";
public static string QSBComponentRepaired = "QSBComponentRepaired";
public static string QSBComponentRepairTick = "QSBComponentRepairTick";
public static string QSBPlayerRespawn = "QSBPlayerRespawn";
public static string QSBProbeEvent = "QSBProbeEvent";
public static string QSBProbeStartRetrieve = "QSBProbeStartRetrieve";
public static string QSBRetrieveProbe = "QSBRetrieveProbe";
public static string QSBPlayerRetrieveProbe = "QSBPlayerRetrieveProbe";
public static string QSBLaunchProbe = "QSBLaunchProbe";
public static string QSBPlayerLaunchProbe = "QSBPlayerLaunchProbe";
public static string QSBEndLoop = "QSBEndLoop";
public static string QSBStartLoop = "QSBStartLoop";
public static string QSBServerState = "QSBServerState";
public static string QSBClientState = "QSBClientState";
public static string QSBDebugEvent = "QSBDebugEvent";
public static string QSBEnterNomaiHeadZone = "QSBEnterNomaiHeadZone";
public static string QSBExitNomaiHeadZone = "QSBExitNomaiHeadZone";
public static string QSBEnterSatelliteCamera = "QSBEnterSatelliteCamera";
public static string QSBExitSatelliteCamera = "QSBExitSatelliteCamera";
public static string QSBSatelliteSnapshot = "QSBSatelliteSnapshot";
public static string QSBAnglerChangeState = "QSBAnglerChangeState";
public static string QSBMeteorPreLaunch = "QSBMeteorPreLaunch";
public static string QSBMeteorLaunch = "QSBMeteorLaunch";
public static string QSBMeteorSpecialImpact = "QSBMeteorSpecialImpact";
public static string QSBFragmentDamage = "QSBFragmentDamage";
public static string QSBFragmentResync = "QSBFragmentResync";
public static string QSBLearnLaunchCodes = "QSBLearnLaunchCodes";
public static string QSBSatelliteRepairTick = "QSBSatelliteRepairTick";
public static string QSBSatelliteRepaired = "QSBSatelliteRepairTick";
public static string QSBAuthorityQueue = "QSBAuthorityQueue";
public static string QSBJellyfishRising = "QSBJellyfishRising";
public const string QSBPlayerDeath = nameof(QSBPlayerDeath);
public const string QSBPlayerJoin = nameof(QSBPlayerJoin);
public const string QSBPlayerReady = nameof(QSBPlayerReady);
public const string QSBRequestStateResync = nameof(QSBRequestStateResync);
public const string QSBServerTime = nameof(QSBServerTime);
public const string QSBStartLift = nameof(QSBStartLift);
public const string QSBGeyserState = nameof(QSBGeyserState);
public const string QSBOrbSlot = nameof(QSBOrbSlot);
public const string QSBOrbUser = nameof(QSBOrbUser);
public const string QSBConversation = nameof(QSBConversation);
public const string QSBConversationStartEnd = nameof(QSBConversationStartEnd);
public const string QSBChangeAnimType = nameof(QSBChangeAnimType);
public const string QSBPlayerInformation = nameof(QSBPlayerInformation);
public const string QSBRevealFact = nameof(QSBRevealFact);
public const string QSBSocketStateChange = nameof(QSBSocketStateChange);
public const string QSBMultiStateChange = nameof(QSBMultiStateChange);
public const string QSBQuantumShuffle = nameof(QSBQuantumShuffle);
public const string QSBQuantumAuthority = nameof(QSBQuantumAuthority);
public const string QSBMoonStateChange = nameof(QSBMoonStateChange);
public const string QSBIdentifyFrequency = nameof(QSBIdentifyFrequency);
public const string QSBIdentifySignal = nameof(QSBIdentifySignal);
public const string QSBTextTranslated = nameof(QSBTextTranslated);
public const string QSBEnterShrine = nameof(QSBEnterShrine);
public const string QSBExitShrine = nameof(QSBExitShrine);
public const string QSBPlayerEntangle = nameof(QSBPlayerEntangle);
public const string QSBDropItem = nameof(QSBDropItem);
public const string QSBSocketItem = nameof(QSBSocketItem);
public const string QSBMoveToCarry = nameof(QSBMoveToCarry);
public const string QSBStartStatue = nameof(QSBStartStatue);
public const string QSBPlayerKick = nameof(QSBPlayerKick);
public const string QSBEnterPlatform = nameof(QSBEnterPlatform);
public const string QSBExitPlatform = nameof(QSBExitPlatform);
public const string QSBCampfireState = nameof(QSBCampfireState);
public const string QSBMarshmallowEvent = nameof(QSBMarshmallowEvent);
public const string QSBAnimTrigger = nameof(QSBAnimTrigger);
public const string QSBEnterNonNomaiHeadZone = nameof(QSBEnterNonNomaiHeadZone);
public const string QSBExitNonNomaiHeadZone = nameof(QSBExitNonNomaiHeadZone);
public const string QSBNpcAnimEvent = nameof(QSBNpcAnimEvent);
public const string QSBHatchState = nameof(QSBHatchState);
public const string QSBEnableFunnel = nameof(QSBEnableFunnel);
public const string QSBHullImpact = nameof(QSBHullImpact);
public const string QSBHullDamaged = nameof(QSBHullDamaged);
public const string QSBHullChangeIntegrity = nameof(QSBHullChangeIntegrity);
public const string QSBHullRepaired = nameof(QSBHullRepaired);
public const string QSBHullRepairTick = nameof(QSBHullRepairTick);
public const string QSBComponentDamaged = nameof(QSBComponentDamaged);
public const string QSBComponentRepaired = nameof(QSBComponentRepaired);
public const string QSBComponentRepairTick = nameof(QSBComponentRepairTick);
public const string QSBPlayerRespawn = nameof(QSBPlayerRespawn);
public const string QSBProbeEvent = nameof(QSBProbeEvent);
public const string QSBProbeStartRetrieve = nameof(QSBProbeStartRetrieve);
public const string QSBRetrieveProbe = nameof(QSBRetrieveProbe);
public const string QSBPlayerRetrieveProbe = nameof(QSBPlayerRetrieveProbe);
public const string QSBLaunchProbe = nameof(QSBLaunchProbe);
public const string QSBPlayerLaunchProbe = nameof(QSBPlayerLaunchProbe);
public const string QSBEndLoop = nameof(QSBEndLoop);
public const string QSBStartLoop = nameof(QSBStartLoop);
public const string QSBServerState = nameof(QSBServerState);
public const string QSBClientState = nameof(QSBClientState);
public const string QSBDebugEvent = nameof(QSBDebugEvent);
public const string QSBEnterNomaiHeadZone = nameof(QSBEnterNomaiHeadZone);
public const string QSBExitNomaiHeadZone = nameof(QSBExitNomaiHeadZone);
public const string QSBEnterSatelliteCamera = nameof(QSBEnterSatelliteCamera);
public const string QSBExitSatelliteCamera = nameof(QSBExitSatelliteCamera);
public const string QSBSatelliteSnapshot = nameof(QSBSatelliteSnapshot);
public const string QSBAnglerChangeState = nameof(QSBAnglerChangeState);
public const string QSBMeteorPreLaunch = nameof(QSBMeteorPreLaunch);
public const string QSBMeteorLaunch = nameof(QSBMeteorLaunch);
public const string QSBMeteorSpecialImpact = nameof(QSBMeteorSpecialImpact);
public const string QSBFragmentDamage = nameof(QSBFragmentDamage);
public const string QSBFragmentResync = nameof(QSBFragmentResync);
public const string QSBLearnLaunchCodes = nameof(QSBLearnLaunchCodes);
public const string QSBSatelliteRepairTick = nameof(QSBSatelliteRepairTick);
public const string QSBSatelliteRepaired = nameof(QSBSatelliteRepairTick);
public const string QSBAuthorityQueue = nameof(QSBAuthorityQueue);
public const string QSBJellyfishRising = nameof(QSBJellyfishRising);
}
}

View File

@ -6,6 +6,7 @@ using QSB.Player;
using QSB.Player.Events;
using QSB.Player.TransformSync;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Components;
namespace QSB.Events
@ -31,6 +32,8 @@ namespace QSB.Events
public virtual void OnReceiveRemote(bool isHost, T message) { }
public virtual void OnReceiveLocal(bool isHost, T message) { }
public abstract bool RequireWorldObjectsReady();
public void SendEvent(T message)
{
message.FromId = QSBPlayerManager.LocalPlayerId;
@ -43,7 +46,8 @@ namespace QSB.Events
/// Checks whether the message should be processed by the executing client/server.
/// </summary>
/// <returns>True if the message should be processed.</returns>
public virtual bool CheckMessage(bool isServer, T message) => true;
public virtual bool CheckMessage(bool isServer, T message)
=> !RequireWorldObjectsReady() || WorldObjectManager.AllObjectsReady;
private void OnReceive(bool isServer, T message)
{

View File

@ -7,6 +7,8 @@ namespace QSB.GeyserSync.Events
{
public class GeyserEvent : QSBEvent<BoolWorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, bool>.AddListener(EventNames.QSBGeyserState, Handler);
public override void CloseListener() => GlobalMessenger<int, bool>.RemoveListener(EventNames.QSBGeyserState, Handler);
@ -21,11 +23,6 @@ namespace QSB.GeyserSync.Events
public override void OnReceiveRemote(bool isHost, BoolWorldObjectMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var geyser = QSBWorldSync.GetWorldFromId<QSBGeyser>(message.ObjectId);
geyser?.SetState(message.State);
}

View File

@ -9,6 +9,8 @@ namespace QSB.ItemSync.Events
{
internal class DropItemEvent : QSBEvent<DropItemMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<int, Vector3, Vector3, Sector>.AddListener(EventNames.QSBDropItem, Handler);

View File

@ -8,6 +8,8 @@ namespace QSB.ItemSync.Events
{
internal class MoveToCarryEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<int>.AddListener(EventNames.QSBMoveToCarry, Handler);

View File

@ -9,6 +9,8 @@ namespace QSB.ItemSync.Events
{
internal class SocketItemEvent : QSBEvent<SocketItemMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<int, int, SocketEventType>.AddListener(EventNames.QSBSocketItem, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.JellyfishSync.Events
{
public class JellyfishRisingEvent : QSBEvent<BoolWorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBJellyfish>.AddListener(EventNames.QSBJellyfishRising, Handler);
@ -23,11 +25,6 @@ namespace QSB.JellyfishSync.Events
public override void OnReceiveRemote(bool isHost, BoolWorldObjectMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbJellyfish = QSBWorldSync.GetWorldFromId<QSBJellyfish>(message.ObjectId);
qsbJellyfish.IsRising = message.State;
}

View File

@ -5,6 +5,8 @@ namespace QSB.LogSync.Events
{
public class RevealFactEvent : QSBEvent<RevealFactMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<string, bool, bool>.AddListener(EventNames.QSBRevealFact, Handler);
public override void CloseListener() => GlobalMessenger<string, bool, bool>.RemoveListener(EventNames.QSBRevealFact, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.MeteorSync.Events
{
public class FragmentDamageEvent : QSBEvent<FragmentDamageMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBFragment, float>.AddListener(EventNames.QSBFragmentDamage, Handler);
@ -23,11 +25,6 @@ namespace QSB.MeteorSync.Events
public override void OnReceiveRemote(bool isHost, FragmentDamageMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbFragment = QSBWorldSync.GetWorldFromId<QSBFragment>(message.ObjectId);
qsbFragment.AddDamage(message.Damage);
}

View File

@ -11,6 +11,8 @@ namespace QSB.MeteorSync.Events
/// pain
public class FragmentResyncEvent : QSBEvent<FragmentResyncMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBFragment>.AddListener(EventNames.QSBFragmentResync, Handler);
@ -48,11 +50,6 @@ namespace QSB.MeteorSync.Events
public override void OnReceiveRemote(bool isHost, FragmentResyncMessage msg)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbFragment = QSBWorldSync.GetWorldFromId<QSBFragment>(msg.ObjectId);
qsbFragment.AttachedObject._integrity = msg.Integrity;
qsbFragment.AttachedObject._origIntegrity = msg.OrigIntegrity;

View File

@ -6,6 +6,8 @@ namespace QSB.MeteorSync.Events
{
public class MeteorLaunchEvent : QSBEvent<MeteorLaunchMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBMeteorLauncher>.AddListener(EventNames.QSBMeteorLaunch, Handler);
@ -24,11 +26,6 @@ namespace QSB.MeteorSync.Events
public override void OnReceiveRemote(bool isHost, MeteorLaunchMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbMeteorLauncher = QSBWorldSync.GetWorldFromId<QSBMeteorLauncher>(message.ObjectId);
qsbMeteorLauncher.LaunchMeteor(message.MeteorId, message.LaunchSpeed);
}

View File

@ -7,6 +7,8 @@ namespace QSB.MeteorSync.Events
{
public class MeteorPreLaunchEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBMeteorLauncher>.AddListener(EventNames.QSBMeteorPreLaunch, Handler);
@ -22,11 +24,6 @@ namespace QSB.MeteorSync.Events
public override void OnReceiveRemote(bool isHost, WorldObjectMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbMeteorLauncher = QSBWorldSync.GetWorldFromId<QSBMeteorLauncher>(message.ObjectId);
qsbMeteorLauncher.PreLaunchMeteor();
}

View File

@ -7,6 +7,8 @@ namespace QSB.MeteorSync.Events
{
public class MeteorSpecialImpactEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBMeteor>.AddListener(EventNames.QSBMeteorSpecialImpact, Handler);
@ -22,11 +24,6 @@ namespace QSB.MeteorSync.Events
public override void OnReceiveRemote(bool isHost, WorldObjectMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbMeteor = QSBWorldSync.GetWorldFromId<QSBMeteor>(message.ObjectId);
qsbMeteor.SpecialImpact();
}

View File

@ -6,6 +6,8 @@ namespace QSB.OrbSync.Events
{
public class OrbSlotEvent : QSBEvent<OrbSlotMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, int, bool>.AddListener(EventNames.QSBOrbSlot, Handler);
public override void CloseListener() => GlobalMessenger<int, int, bool>.RemoveListener(EventNames.QSBOrbSlot, Handler);

View File

@ -11,6 +11,8 @@ namespace QSB.OrbSync.Events
{
public class OrbUserEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int>.AddListener(EventNames.QSBOrbUser, Handler);
public override void CloseListener() => GlobalMessenger<int>.RemoveListener(EventNames.QSBOrbUser, Handler);

View File

@ -10,10 +10,13 @@ namespace QSB.Player.Events
{
internal class EnterLeaveEvent : QSBEvent<EnumWorldObjectMessage<EnterLeaveType>>
{
// TODO : sync the things that dont need the worldobjects some other way
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.EnterQuantumMoon, () => Handler(EnterLeaveType.EnterMoon));
GlobalMessenger.AddListener(EventNames.ExitQuantumMoon, () => Handler(EnterLeaveType.ExitMoon));
GlobalMessenger.AddListener(EventNames.PlayerEnterQuantumMoon, () => Handler(EnterLeaveType.EnterMoon));
GlobalMessenger.AddListener(EventNames.PlayerExitQuantumMoon, () => Handler(EnterLeaveType.ExitMoon));
GlobalMessenger.AddListener(EventNames.QSBEnterShrine, () => Handler(EnterLeaveType.EnterShrine));
GlobalMessenger.AddListener(EventNames.QSBExitShrine, () => Handler(EnterLeaveType.ExitShrine));
GlobalMessenger<int>.AddListener(EventNames.QSBEnterPlatform, (int id) => Handler(EnterLeaveType.EnterPlatform, id));
@ -28,8 +31,8 @@ namespace QSB.Player.Events
public override void CloseListener()
{
GlobalMessenger.RemoveListener(EventNames.EnterQuantumMoon, () => Handler(EnterLeaveType.EnterMoon));
GlobalMessenger.RemoveListener(EventNames.ExitQuantumMoon, () => Handler(EnterLeaveType.ExitMoon));
GlobalMessenger.RemoveListener(EventNames.PlayerEnterQuantumMoon, () => Handler(EnterLeaveType.EnterMoon));
GlobalMessenger.RemoveListener(EventNames.PlayerExitQuantumMoon, () => Handler(EnterLeaveType.ExitMoon));
GlobalMessenger.RemoveListener(EventNames.QSBEnterShrine, () => Handler(EnterLeaveType.EnterShrine));
GlobalMessenger.RemoveListener(EventNames.QSBExitShrine, () => Handler(EnterLeaveType.ExitShrine));
GlobalMessenger<int>.RemoveListener(EventNames.QSBEnterPlatform, (int id) => Handler(EnterLeaveType.EnterPlatform, id));

View File

@ -5,6 +5,8 @@ namespace QSB.Player.Events
{
internal class LaunchCodesEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBLearnLaunchCodes, Handler);
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBLearnLaunchCodes, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.Player.Events
{
internal class PlayerEntangledEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int>.AddListener(EventNames.QSBPlayerEntangle, Handler);
public override void CloseListener() => GlobalMessenger<int>.RemoveListener(EventNames.QSBPlayerEntangle, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Player.Events
{
public class PlayerInformationEvent : QSBEvent<PlayerInformationMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBPlayerInformation, Handler);
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBPlayerInformation, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Player.Events
{
public class PlayerJoinEvent : QSBEvent<PlayerJoinMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<string>.AddListener(EventNames.QSBPlayerJoin, Handler);
public override void CloseListener() => GlobalMessenger<string>.RemoveListener(EventNames.QSBPlayerJoin, Handler);

View File

@ -9,6 +9,8 @@ namespace QSB.Player.Events
{
internal class PlayerKickEvent : QSBEvent<EnumMessage<KickReason>>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<uint, KickReason>.AddListener(EventNames.QSBPlayerKick, Handler);
public override void CloseListener() => GlobalMessenger<uint, KickReason>.RemoveListener(EventNames.QSBPlayerKick, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.Player.Events
{
public class PlayerReadyEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerReady, Handler);
public override void CloseListener() => GlobalMessenger<bool>.RemoveListener(EventNames.QSBPlayerReady, Handler);

View File

@ -16,6 +16,8 @@ namespace QSB.Player.Events
// Can be sent by any client (including host) to signal they want latest worldobject, player, and server infomation
public class RequestStateResyncEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBRequestStateResync, Handler);
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBRequestStateResync, Handler);
@ -47,7 +49,7 @@ namespace QSB.Player.Events
private void SendWorldObjectInfo()
{
QSBWorldSync.DialogueConditions.ForEach(condition
=> QSBEventManager.FireEvent(EventNames.DialogueCondition, condition.Key, condition.Value));
=> QSBEventManager.FireEvent(EventNames.DialogueConditionChanged, condition.Key, condition.Value));
QSBWorldSync.ShipLogFacts.ForEach(fact
=> QSBEventManager.FireEvent(EventNames.QSBRevealFact, fact.Id, fact.SaveGame, false));

View File

@ -9,6 +9,8 @@ namespace QSB.QuantumSync.Events
{
public class MoonStateChangeEvent : QSBEvent<MoonStateChangeMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, Vector3, int>.AddListener(EventNames.QSBMoonStateChange, Handler);
public override void CloseListener() => GlobalMessenger<int, Vector3, int>.RemoveListener(EventNames.QSBMoonStateChange, Handler);
@ -24,11 +26,6 @@ namespace QSB.QuantumSync.Events
public override void OnReceiveRemote(bool server, MoonStateChangeMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var moon = Locator.GetQuantumMoon();
var wasPlayerEntangled = moon.IsPlayerEntangled();
var location = new RelativeLocationData(Locator.GetPlayerTransform().GetComponent<OWRigidbody>(), moon.transform);

View File

@ -8,6 +8,8 @@ namespace QSB.QuantumSync.Events
{
public class MultiStateChangeEvent : QSBEvent<MultiStateChangeMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, int>.AddListener(EventNames.QSBMultiStateChange, Handler);
public override void CloseListener() => GlobalMessenger<int, int>.RemoveListener(EventNames.QSBMultiStateChange, Handler);
@ -33,11 +35,6 @@ namespace QSB.QuantumSync.Events
public override void OnReceiveRemote(bool server, MultiStateChangeMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var qsbObj = QSBWorldSync.GetWorldFromId<QSBMultiStateQuantumObject>(message.ObjectId);
if (qsbObj.ControllingPlayer != message.FromId)
{

View File

@ -6,6 +6,8 @@ namespace QSB.QuantumSync.Events
{
internal class QuantumAuthorityEvent : QSBEvent<QuantumAuthorityMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, uint>.AddListener(EventNames.QSBQuantumAuthority, Handler);
public override void CloseListener() => GlobalMessenger<int, uint>.RemoveListener(EventNames.QSBQuantumAuthority, Handler);
@ -20,7 +22,7 @@ namespace QSB.QuantumSync.Events
public override bool CheckMessage(bool isServer, QuantumAuthorityMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
if (!base.CheckMessage(isServer, message))
{
return false;
}
@ -56,4 +58,4 @@ namespace QSB.QuantumSync.Events
}
}
}
}
}

View File

@ -6,6 +6,8 @@ namespace QSB.QuantumSync.Events
{
public class QuantumShuffleEvent : QSBEvent<QuantumShuffleMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, int[]>.AddListener(EventNames.QSBQuantumShuffle, Handler);
public override void CloseListener() => GlobalMessenger<int, int[]>.RemoveListener(EventNames.QSBQuantumShuffle, Handler);
@ -20,11 +22,6 @@ namespace QSB.QuantumSync.Events
public override void OnReceiveRemote(bool server, QuantumShuffleMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var obj = QSBWorldSync.GetWorldFromId<QSBQuantumShuffleObject>(message.ObjectId);
obj.ShuffleObjects(message.IndexArray);
}

View File

@ -9,6 +9,8 @@ namespace QSB.QuantumSync.Events
{
public class SocketStateChangeEvent : QSBEvent<SocketStateChangeMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<int, int, Quaternion>.AddListener(EventNames.QSBSocketStateChange, Handler);
public override void CloseListener() => GlobalMessenger<int, int, Quaternion>.RemoveListener(EventNames.QSBSocketStateChange, Handler);
@ -24,11 +26,6 @@ namespace QSB.QuantumSync.Events
public override void OnReceiveRemote(bool server, SocketStateChangeMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var obj = QSBWorldSync.GetWorldFromId<QSBSocketedQuantumObject>(message.ObjectId);
if (obj.ControllingPlayer != message.FromId)
{

View File

@ -7,6 +7,8 @@ namespace QSB.RespawnSync.Events
{
internal class PlayerRespawnEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
=> GlobalMessenger<uint>.AddListener(EventNames.QSBPlayerRespawn, Handler);

View File

@ -9,6 +9,8 @@ namespace QSB.RoastingSync.Events
{
internal class EnterExitRoastingEvent : QSBEvent<BoolWorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
{
GlobalMessenger<Campfire>.AddListener(EventNames.EnterRoastingMode, (Campfire fire) => Handler(fire, true));
@ -42,11 +44,6 @@ namespace QSB.RoastingSync.Events
public override void OnReceiveRemote(bool server, BoolWorldObjectMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
if (message.State && message.ObjectId == -1)
{
DebugLog.ToConsole($"Error - Null campfire supplied for start roasting event!", OWML.Common.MessageType.Error);

View File

@ -11,6 +11,8 @@ namespace QSB.RoastingSync.Events
{
internal class MarshmallowEventEvent : QSBEvent<EnumMessage<MarshmallowEventType>>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<MarshmallowEventType>.AddListener(EventNames.QSBMarshmallowEvent, Handler);
public override void CloseListener() => GlobalMessenger<MarshmallowEventType>.RemoveListener(EventNames.QSBMarshmallowEvent, Handler);
@ -24,11 +26,6 @@ namespace QSB.RoastingSync.Events
public override void OnReceiveRemote(bool server, EnumMessage<MarshmallowEventType> message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
var marshmallow = QSBPlayerManager.GetPlayer(message.AboutId).Marshmallow;
if (marshmallow == null)
{

View File

@ -5,6 +5,8 @@ namespace QSB.SatelliteSync.Events
{
internal class SatelliteProjectorEvent : QSBEvent<BoolMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.QSBEnterSatelliteCamera, () => Handler(true));

View File

@ -5,6 +5,8 @@ namespace QSB.SatelliteSync.Events
{
internal class SatelliteProjectorSnapshotEvent : QSBEvent<BoolMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<bool>.AddListener(EventNames.QSBSatelliteSnapshot, (bool forward) => Handler(forward));
public override void CloseListener() => GlobalMessenger<bool>.RemoveListener(EventNames.QSBSatelliteSnapshot, (bool forward) => Handler(forward));

View File

@ -7,6 +7,8 @@ namespace QSB.ShipSync.Events.Component
{
internal class ComponentDamagedEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipComponent>.AddListener(EventNames.QSBComponentDamaged, Handler);
public override void CloseListener() => GlobalMessenger<ShipComponent>.RemoveListener(EventNames.QSBComponentDamaged, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.ShipSync.Events.Component
{
internal class ComponentRepairTickEvent : QSBEvent<RepairTickMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipComponent, float>.AddListener(EventNames.QSBComponentRepairTick, Handler);
public override void CloseListener() => GlobalMessenger<ShipComponent, float>.RemoveListener(EventNames.QSBComponentRepairTick, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ShipSync.Events.Component
{
internal class ComponentRepairedEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipComponent>.AddListener(EventNames.QSBComponentRepaired, Handler);
public override void CloseListener() => GlobalMessenger<ShipComponent>.RemoveListener(EventNames.QSBComponentRepaired, Handler);

View File

@ -10,6 +10,8 @@ namespace QSB.ShipSync.Events
{
internal class FlyShipEvent : QSBEvent<BoolMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
{
GlobalMessenger<OWRigidbody>.AddListener(EventNames.EnterFlightConsole, (OWRigidbody rigidbody) => Handler(true));

View File

@ -5,6 +5,8 @@ namespace QSB.ShipSync.Events
{
internal class FunnelEnableEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger.AddListener(EventNames.QSBEnableFunnel, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.ShipSync.Events
{
internal class HatchEvent : QSBEvent<BoolMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<bool>.AddListener(EventNames.QSBHatchState, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.ShipSync.Events.Hull
{
internal class HullChangeIntegrityEvent : QSBEvent<HullChangeIntegrityMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipHull, float>.AddListener(EventNames.QSBHullChangeIntegrity, Handler);
public override void CloseListener() => GlobalMessenger<ShipHull, float>.RemoveListener(EventNames.QSBHullChangeIntegrity, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ShipSync.Events.Hull
{
internal class HullDamagedEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipHull>.AddListener(EventNames.QSBHullDamaged, Handler);
public override void CloseListener() => GlobalMessenger<ShipHull>.RemoveListener(EventNames.QSBHullDamaged, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.ShipSync.Events.Hull
{
internal class HullImpactEvent : QSBEvent<HullImpactMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipHull, ImpactData, float>.AddListener(EventNames.QSBHullImpact, Handler);
public override void CloseListener() => GlobalMessenger<ShipHull, ImpactData, float>.RemoveListener(EventNames.QSBHullImpact, Handler);
@ -28,6 +30,7 @@ namespace QSB.ShipSync.Events.Hull
public override void OnReceiveRemote(bool server, HullImpactMessage message)
{
// TODO : ????????? why did i make this event??
var worldObject = QSBWorldSync.GetWorldFromId<QSBShipHull>(message.ObjectId);
}
}

View File

@ -6,6 +6,8 @@ namespace QSB.ShipSync.Events.Hull
{
internal class HullRepairTickEvent : QSBEvent<RepairTickMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipHull, float>.AddListener(EventNames.QSBHullRepairTick, Handler);
public override void CloseListener() => GlobalMessenger<ShipHull, float>.RemoveListener(EventNames.QSBHullRepairTick, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ShipSync.Events.Hull
{
internal class HullRepairedEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<ShipHull>.AddListener(EventNames.QSBHullRepaired, Handler);
public override void CloseListener() => GlobalMessenger<ShipHull>.RemoveListener(EventNames.QSBHullRepaired, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.StatueSync.Events
{
internal class StartStatueEvent : QSBEvent<StartStatueMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<Vector3, Quaternion, float>.AddListener(EventNames.QSBStartStatue, Handler);

View File

@ -113,14 +113,14 @@ namespace QSB.Syncs.Sectored.Rigidbodies
return true;
}
var targetPos = ReferenceTransform.DecodePos(transform.position);
var targetRot = ReferenceTransform.DecodeRot(transform.rotation);
if (targetPos == Vector3.zero || transform.position == Vector3.zero)
if (transform.position == Vector3.zero)
{
return false;
}
var targetPos = ReferenceTransform.DecodePos(transform.position);
var targetRot = ReferenceTransform.DecodeRot(transform.rotation);
var positionToSet = targetPos;
var rotationToSet = targetRot;

View File

@ -81,7 +81,7 @@ namespace QSB.Syncs.Sectored.Transforms
var targetPos = transform.position;
var targetRot = transform.rotation;
if (targetPos != Vector3.zero && ReferenceTransform.DecodePos(transform.position) != Vector3.zero)
if (targetPos != Vector3.zero)
{
if (UseInterpolation)
{

View File

@ -79,11 +79,6 @@ namespace QSB.Syncs.Unsectored.Rigidbodies
transform.rotation = rot;
_relativeVelocity = relativeVelocity;
_relativeAngularVelocity = relativeAngularVelocity;
if (transform.position == Vector3.zero)
{
// DebugLog.ToConsole($"Warning - {_logName} at (0,0,0)! - Given position was {pos}", MessageType.Warning);
}
}
protected void SetValuesToSync()
@ -105,11 +100,6 @@ namespace QSB.Syncs.Unsectored.Rigidbodies
var targetPos = ReferenceTransform.DecodePos(transform.position);
var targetRot = ReferenceTransform.DecodeRot(transform.rotation);
if (targetPos == Vector3.zero || transform.position == Vector3.zero)
{
return false;
}
var positionToSet = targetPos;
var rotationToSet = targetRot;

View File

@ -45,11 +45,6 @@ namespace QSB.Syncs.Unsectored.Transforms
transform.position = pos;
transform.rotation = rot;
if (transform.position == Vector3.zero)
{
//DebugLog.ToConsole($"Warning - {_logName} at (0,0,0)! - Given position was {pos}", MessageType.Warning);
}
}
protected override bool UpdateTransform()
@ -63,22 +58,15 @@ namespace QSB.Syncs.Unsectored.Transforms
var targetPos = ReferenceTransform.DecodePos(transform.position);
var targetRot = ReferenceTransform.DecodeRot(transform.rotation);
if (targetPos != Vector3.zero && ReferenceTransform.DecodePos(transform.position) != Vector3.zero)
if (UseInterpolation)
{
if (UseInterpolation)
{
AttachedObject.transform.position = SmartSmoothDamp(AttachedObject.transform.position, targetPos);
AttachedObject.transform.rotation = QuaternionHelper.SmoothDamp(AttachedObject.transform.rotation, targetRot, ref _rotationSmoothVelocity, SmoothTime);
}
else
{
AttachedObject.transform.position = targetPos;
AttachedObject.transform.rotation = targetRot;
}
AttachedObject.transform.position = SmartSmoothDamp(AttachedObject.transform.position, targetPos);
AttachedObject.transform.rotation = QuaternionHelper.SmoothDamp(AttachedObject.transform.rotation, targetRot, ref _rotationSmoothVelocity, SmoothTime);
}
else if (targetPos == Vector3.zero)
else
{
DebugLog.ToConsole($"Warning - TargetPos for {LogName} was (0,0,0).", MessageType.Warning);
AttachedObject.transform.position = targetPos;
AttachedObject.transform.rotation = targetRot;
}
return true;

View File

@ -4,6 +4,8 @@ namespace QSB.TimeSync.Events
{
public class ServerTimeEvent : QSBEvent<ServerTimeMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<float, int>.AddListener(EventNames.QSBServerTime, Handler);
public override void CloseListener() => GlobalMessenger<float, int>.RemoveListener(EventNames.QSBServerTime, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.FlashlightTool.Events
{
public class PlayerFlashlightEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.TurnOnFlashlight, HandleTurnOn);

View File

@ -7,6 +7,8 @@ namespace QSB.Tools.ProbeLauncherTool.Events
{
public class EquipProbeLauncherEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => false;
private bool _nonPlayerLauncherEquipped;
public override void SetupListener()

View File

@ -7,6 +7,8 @@ namespace QSB.Tools.ProbeLauncherTool.Events
{
internal class LaunchProbeEvent : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBProbeLauncher>.AddListener(EventNames.QSBLaunchProbe, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.ProbeLauncherTool.Events
{
internal class PlayerLaunchProbeEvent : QSBEvent<PlayerMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger.AddListener(EventNames.QSBPlayerLaunchProbe, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.ProbeLauncherTool.Events
{
internal class PlayerRetrieveProbeEvent : QSBEvent<BoolMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerRetrieveProbe, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.Tools.ProbeLauncherTool.Events
{
internal class RetrieveProbeEvent : QSBEvent<BoolWorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<QSBProbeLauncher, bool>.AddListener(EventNames.QSBRetrieveProbe, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.ProbeTool.Events
{
internal class PlayerProbeEvent : QSBEvent<EnumMessage<ProbeEvent>>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<ProbeEvent>.AddListener(EventNames.QSBProbeEvent, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.ProbeTool.Events
{
internal class ProbeStartRetrieveEvent : QSBEvent<FloatMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener()
=> GlobalMessenger<float>.AddListener(EventNames.QSBProbeStartRetrieve, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.SignalscopeTool.Events
{
public class PlayerSignalscopeEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
{
GlobalMessenger<Signalscope>.AddListener(EventNames.EquipSignalscope, HandleEquip);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.SignalscopeTool.FrequencySync.Events
{
public class IdentifyFrequencyEvent : QSBEvent<EnumMessage<SignalFrequency>>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<SignalFrequency>.AddListener(EventNames.QSBIdentifyFrequency, Handler);
public override void CloseListener() => GlobalMessenger<SignalFrequency>.RemoveListener(EventNames.QSBIdentifyFrequency, Handler);

View File

@ -6,6 +6,9 @@ namespace QSB.Tools.SignalscopeTool.FrequencySync.Events
{
public class IdentifySignalEvent : QSBEvent<EnumMessage<SignalName>>
{
// TODO : fix this with save-sync
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<SignalName>.AddListener(EventNames.QSBIdentifySignal, Handler);
public override void CloseListener() => GlobalMessenger<SignalName>.RemoveListener(EventNames.QSBIdentifySignal, Handler);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.TranslatorTool.Events
{
public class PlayerTranslatorEvent : QSBEvent<ToggleMessage>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener()
{
GlobalMessenger.AddListener(EventNames.EquipTranslator, HandleEquip);

View File

@ -6,6 +6,8 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.Events
{
public class SetAsTranslatedEvent : QSBEvent<SetAsTranslatedMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<NomaiTextType, int, int>.AddListener(EventNames.QSBTextTranslated, Handler);
public override void CloseListener() => GlobalMessenger<NomaiTextType, int, int>.RemoveListener(EventNames.QSBTextTranslated, Handler);
@ -21,11 +23,6 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.Events
public override void OnReceiveRemote(bool server, SetAsTranslatedMessage message)
{
if (!WorldObjectManager.AllObjectsReady)
{
return;
}
if (message.EnumValue == NomaiTextType.WallText)
{
var obj = QSBWorldSync.GetWorldFromId<QSBWallText>(message.ObjectId);

View File

@ -5,6 +5,8 @@ namespace QSB.Utility.Events
{
public class DebugEvent : QSBEvent<EnumMessage<DebugEventEnum>>
{
public override bool RequireWorldObjectsReady() => false;
public override void SetupListener() => GlobalMessenger<DebugEventEnum>.AddListener(EventNames.QSBDebugEvent, Handler);
public override void CloseListener() => GlobalMessenger<DebugEventEnum>.RemoveListener(EventNames.QSBDebugEvent, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ZeroGCaveSync.Events
{
internal class SatelliteNodeRepairTick : QSBEvent<RepairTickMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<SatelliteNode, float>.AddListener(EventNames.QSBSatelliteRepairTick, Handler);
public override void CloseListener() => GlobalMessenger<SatelliteNode, float>.RemoveListener(EventNames.QSBSatelliteRepairTick, Handler);

View File

@ -7,6 +7,8 @@ namespace QSB.ZeroGCaveSync.Events
{
internal class SatelliteNodeRepaired : QSBEvent<WorldObjectMessage>
{
public override bool RequireWorldObjectsReady() => true;
public override void SetupListener() => GlobalMessenger<SatelliteNode>.AddListener(EventNames.QSBSatelliteRepaired, Handler);
public override void CloseListener() => GlobalMessenger<SatelliteNode>.RemoveListener(EventNames.QSBSatelliteRepaired, Handler);