mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-22 03:40:54 +00:00
Merge pull request #372 from misternebula/zero-g-sync
Zero g sync + remove eventtype
This commit is contained in:
commit
20817a8aec
@ -3,14 +3,11 @@ using QSB.Events;
|
||||
using QSB.Player;
|
||||
using QSB.WorldSync;
|
||||
using UnityEngine;
|
||||
using EventType = QSB.Events.EventType;
|
||||
|
||||
namespace QSB.Anglerfish.Events
|
||||
{
|
||||
public class AnglerChangeStateEvent : QSBEvent<AnglerChangeStateMessage>
|
||||
{
|
||||
public override EventType Type => EventType.AnglerChangeState;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBAngler>.AddListener(EventNames.QSBAnglerChangeState, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Animation.NPC.Events
|
||||
{
|
||||
internal class NpcAnimationEvent : QSBEvent<NpcAnimationMessage>
|
||||
{
|
||||
public override EventType Type => EventType.NpcAnimEvent;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<AnimationEvent, int>.AddListener(EventNames.QSBNpcAnimEvent, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<AnimationEvent, int>.RemoveListener(EventNames.QSBNpcAnimEvent, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.Animation.Player.Events
|
||||
{
|
||||
internal class AnimationTriggerEvent : QSBEvent<AnimationTriggerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.AnimTrigger;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<uint, string>.AddListener(EventNames.QSBAnimTrigger, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<uint, string>.RemoveListener(EventNames.QSBAnimTrigger, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.Animation.Player.Events
|
||||
{
|
||||
public class ChangeAnimTypeEvent : QSBEvent<EnumMessage<AnimationType>>
|
||||
{
|
||||
public override EventType Type => EventType.PlayInstrument;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<uint, AnimationType>.AddListener(EventNames.QSBChangeAnimType, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<uint, AnimationType>.RemoveListener(EventNames.QSBChangeAnimType, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Animation.Player.Events
|
||||
{
|
||||
public class PlayerSuitEvent : QSBEvent<ToggleMessage>
|
||||
{
|
||||
public override EventType Type => EventType.SuitActiveChange;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger.AddListener(EventNames.SuitUp, HandleSuitUp);
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.CampfireSync.Events
|
||||
{
|
||||
internal class CampfireStateEvent : QSBEvent<EnumWorldObjectMessage<Campfire.State>>
|
||||
{
|
||||
public override EventType Type => EventType.CampfireState;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, Campfire.State>.AddListener(EventNames.QSBCampfireState, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, Campfire.State>.RemoveListener(EventNames.QSBCampfireState, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ClientServerStateSync.Events
|
||||
{
|
||||
internal class ClientStateEvent : QSBEvent<EnumMessage<ClientState>>
|
||||
{
|
||||
public override EventType Type => EventType.ClientState;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<ClientState>.AddListener(EventNames.QSBClientState, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.ClientServerStateSync.Events
|
||||
{
|
||||
internal class ServerStateEvent : QSBEvent<EnumMessage<ServerState>>
|
||||
{
|
||||
public override EventType Type => EventType.ServerState;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<ServerState>.AddListener(EventNames.QSBServerState, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ConversationSync.Events
|
||||
{
|
||||
public class ConversationEvent : QSBEvent<ConversationMessage>
|
||||
{
|
||||
public override EventType Type => EventType.Conversation;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<uint, string, ConversationType>.AddListener(EventNames.QSBConversation, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<uint, string, ConversationType>.RemoveListener(EventNames.QSBConversation, Handler);
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.ConversationSync.Events
|
||||
{
|
||||
public class ConversationStartEndEvent : QSBEvent<ConversationStartEndMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.ConversationStartEnd;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, uint, bool>.AddListener(EventNames.QSBConversationStartEnd, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, uint, bool>.RemoveListener(EventNames.QSBConversationStartEnd, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.ConversationSync.Events
|
||||
{
|
||||
public class DialogueConditionEvent : QSBEvent<DialogueConditionMessage>
|
||||
{
|
||||
public override EventType Type => EventType.DialogueCondition;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<string, bool>.AddListener(EventNames.DialogueCondition, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<string, bool>.RemoveListener(EventNames.DialogueCondition, Handler);
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.DeathSync.Events
|
||||
{
|
||||
internal class EndLoopEvent : QSBEvent<EnumMessage<EndLoopReason>>
|
||||
{
|
||||
public override EventType Type => EventType.EndLoop;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<EndLoopReason>.AddListener(EventNames.QSBEndLoop, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<EndLoopReason>.RemoveListener(EventNames.QSBEndLoop, Handler);
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.DeathSync.Events
|
||||
{
|
||||
public class PlayerDeathEvent : QSBEvent<PlayerDeathMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerDeath;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<DeathType>.AddListener(EventNames.QSBPlayerDeath, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<DeathType>.RemoveListener(EventNames.QSBPlayerDeath, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.DeathSync.Events
|
||||
{
|
||||
internal class StartLoopEvent : QSBEvent<PlayerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.StartLoop;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBStartLoop, Handler);
|
||||
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBStartLoop, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ElevatorSync.Events
|
||||
{
|
||||
public class ElevatorEvent : QSBEvent<BoolWorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.Elevator;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, bool>.AddListener(EventNames.QSBStartLift, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, bool>.RemoveListener(EventNames.QSBStartLift, Handler);
|
||||
|
||||
|
16
QSB/Events/BaseQSBEvent.cs
Normal file
16
QSB/Events/BaseQSBEvent.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QSB.Events
|
||||
{
|
||||
public abstract class BaseQSBEvent : IQSBEvent
|
||||
{
|
||||
protected static int _msgType = 0;
|
||||
|
||||
public abstract void SetupListener();
|
||||
public abstract void CloseListener();
|
||||
}
|
||||
}
|
@ -99,5 +99,7 @@
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
@ -1,148 +0,0 @@
|
||||
namespace QSB.Events
|
||||
{
|
||||
public enum EventType
|
||||
{
|
||||
/*
|
||||
* MISC.
|
||||
*/
|
||||
DebugEvent,
|
||||
SatelliteProjector,
|
||||
SatelliteProjectorSnapshot,
|
||||
LaunchCodes,
|
||||
VariableSync,
|
||||
|
||||
/*
|
||||
* SERVER EVENTS
|
||||
*/
|
||||
|
||||
ServerTime,
|
||||
StartStatue,
|
||||
EndLoop,
|
||||
StartLoop,
|
||||
ServerState,
|
||||
ClientState,
|
||||
|
||||
/*
|
||||
* PLAYER EVENTS
|
||||
*/
|
||||
|
||||
PlayerInformation,
|
||||
RequestStateResync,
|
||||
PlayerJoin,
|
||||
PlayerDeath,
|
||||
PlayerReady,
|
||||
PlayerKick,
|
||||
PlayerRespawn,
|
||||
EnterLeave,
|
||||
|
||||
/*
|
||||
* DIALOGUE
|
||||
*/
|
||||
|
||||
Conversation,
|
||||
ConversationStartEnd,
|
||||
DialogueCondition,
|
||||
RevealFact,
|
||||
|
||||
/*
|
||||
* ANIMATION
|
||||
*/
|
||||
|
||||
PlayInstrument,
|
||||
AnimTrigger,
|
||||
NpcAnimEvent,
|
||||
SuitActiveChange,
|
||||
|
||||
/*
|
||||
* ORBS
|
||||
*/
|
||||
|
||||
OrbSlot,
|
||||
OrbUser,
|
||||
|
||||
/*
|
||||
* CAMPFIRES
|
||||
*/
|
||||
|
||||
CampfireState,
|
||||
Roasting,
|
||||
MarshmallowEvent,
|
||||
|
||||
/*
|
||||
* WORLD OBJECTS
|
||||
*/
|
||||
|
||||
Geyser,
|
||||
Elevator,
|
||||
|
||||
/*
|
||||
* ITEMS
|
||||
*/
|
||||
|
||||
DropItem,
|
||||
SocketItem,
|
||||
MoveToCarry,
|
||||
|
||||
/*
|
||||
* QUANTUM OBJECTS
|
||||
*/
|
||||
|
||||
SocketStateChange,
|
||||
MultiStateChange,
|
||||
QuantumShuffle,
|
||||
QuantumAuthority,
|
||||
MoonStateChange,
|
||||
PlayerEntangle,
|
||||
|
||||
/*
|
||||
* SHIP
|
||||
*/
|
||||
|
||||
ComponentDamaged,
|
||||
ComponentRepaired,
|
||||
ComponentRepairTick,
|
||||
HullImpact,
|
||||
HullDamaged,
|
||||
HullChangeIntegrity,
|
||||
HullRepaired,
|
||||
HullRepairTick,
|
||||
FlyShip,
|
||||
OpenHatch,
|
||||
EnableFunnel,
|
||||
|
||||
/*
|
||||
* TOOLS
|
||||
*/
|
||||
|
||||
// Flashlight
|
||||
FlashlightActiveChange,
|
||||
|
||||
// Translator
|
||||
TranslatorActiveChange,
|
||||
TextTranslated,
|
||||
|
||||
// Signalscope
|
||||
SignalscopeActiveChange,
|
||||
IdentifyFrequency,
|
||||
IdentifySignal,
|
||||
|
||||
// Probe
|
||||
ProbeStartRetrieve,
|
||||
ProbeEvent,
|
||||
|
||||
// Probe Launcher
|
||||
ProbeLauncherActiveChange,
|
||||
RetrieveProbe,
|
||||
PlayerRetrieveProbe,
|
||||
LaunchProbe,
|
||||
PlayerLaunchProbe,
|
||||
|
||||
AnglerChangeState,
|
||||
|
||||
MeteorPreLaunch,
|
||||
MeteorLaunch,
|
||||
MeteorSpecialImpact,
|
||||
FragmentDamage,
|
||||
FragmentResync
|
||||
}
|
||||
}
|
@ -2,8 +2,6 @@
|
||||
{
|
||||
public interface IQSBEvent
|
||||
{
|
||||
EventType Type { get; }
|
||||
|
||||
void SetupListener();
|
||||
void CloseListener();
|
||||
}
|
||||
|
@ -7,12 +7,12 @@ using QSB.Player.TransformSync;
|
||||
using QSB.Utility;
|
||||
using QuantumUNET.Components;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.Events
|
||||
{
|
||||
public abstract class QSBEvent<T> : IQSBEvent where T : PlayerMessage, new()
|
||||
public abstract class QSBEvent<T> : BaseQSBEvent where T : PlayerMessage, new()
|
||||
{
|
||||
public abstract EventType Type { get; }
|
||||
public uint LocalPlayerId => QSBPlayerManager.LocalPlayerId;
|
||||
|
||||
private readonly MessageHandler<T> _eventHandler;
|
||||
@ -24,13 +24,15 @@ namespace QSB.Events
|
||||
return;
|
||||
}
|
||||
|
||||
_eventHandler = new MessageHandler<T>(Type);
|
||||
_eventHandler = new MessageHandler<T>(_msgType++);
|
||||
_eventHandler.OnClientReceiveMessage += message => OnReceive(false, message);
|
||||
_eventHandler.OnServerReceiveMessage += message => OnReceive(true, message);
|
||||
}
|
||||
|
||||
public abstract void SetupListener();
|
||||
public abstract void CloseListener();
|
||||
~QSBEvent()
|
||||
{
|
||||
_msgType--;
|
||||
}
|
||||
|
||||
public virtual void OnReceiveRemote(bool isHost, T message) { }
|
||||
public virtual void OnReceiveLocal(bool isHost, T message) { }
|
||||
|
@ -31,6 +31,7 @@ using QSB.Tools.TranslatorTool.Events;
|
||||
using QSB.Tools.TranslatorTool.TranslationSync.Events;
|
||||
using QSB.Utility;
|
||||
using QSB.Utility.Events;
|
||||
using QSB.ZeroGCaveSync.Events;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@ -122,7 +123,9 @@ namespace QSB.Events
|
||||
new HullRepairTickEvent(),
|
||||
new ComponentDamagedEvent(),
|
||||
new ComponentRepairedEvent(),
|
||||
new ComponentRepairTickEvent()
|
||||
new ComponentRepairTickEvent(),
|
||||
new SatelliteNodeRepairTick(),
|
||||
new SatelliteNodeRepaired()
|
||||
};
|
||||
|
||||
if (UnitTestDetector.IsInUnitTest)
|
||||
@ -132,26 +135,6 @@ namespace QSB.Events
|
||||
|
||||
_eventList.ForEach(ev => ev.SetupListener());
|
||||
|
||||
var duplicates = _eventList
|
||||
.GroupBy(qsbEvent => qsbEvent.Type)
|
||||
.Where(group => group.Count() > 1);
|
||||
|
||||
if (duplicates.Count() != 0)
|
||||
{
|
||||
var totalSb = new StringBuilder();
|
||||
foreach (var group in duplicates)
|
||||
{
|
||||
totalSb.Append($"{group.Key}\r\n");
|
||||
foreach (var qsbEvent in group)
|
||||
{
|
||||
totalSb.Append($"- {qsbEvent.GetType().Name}\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
DebugLog.ToConsole($"Error - These QSBEvents handle the same EventType!\r\n{totalSb}", MessageType.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
Ready = true;
|
||||
|
||||
DebugLog.DebugWrite("Event Manager ready.", MessageType.Success);
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.GeyserSync.Events
|
||||
{
|
||||
public class GeyserEvent : QSBEvent<BoolWorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.Geyser;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, bool>.AddListener(EventNames.QSBGeyserState, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, bool>.RemoveListener(EventNames.QSBGeyserState, Handler);
|
||||
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.ItemSync.Events
|
||||
{
|
||||
internal class DropItemEvent : QSBEvent<DropItemMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.DropItem;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<int, Vector3, Vector3, Sector>.AddListener(EventNames.QSBDropItem, Handler);
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.ItemSync.Events
|
||||
{
|
||||
internal class MoveToCarryEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.MoveToCarry;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<int>.AddListener(EventNames.QSBMoveToCarry, Handler);
|
||||
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.ItemSync.Events
|
||||
{
|
||||
internal class SocketItemEvent : QSBEvent<SocketItemMessage>
|
||||
{
|
||||
public override EventType Type => EventType.SocketItem;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<int, int, SocketEventType>.AddListener(EventNames.QSBSocketItem, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.LogSync.Events
|
||||
{
|
||||
public class RevealFactEvent : QSBEvent<RevealFactMessage>
|
||||
{
|
||||
public override EventType Type => EventType.RevealFact;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<string, bool, bool>.AddListener(EventNames.QSBRevealFact, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<string, bool, bool>.RemoveListener(EventNames.QSBRevealFact, Handler);
|
||||
|
||||
|
@ -15,9 +15,17 @@ namespace QSB.Messaging
|
||||
|
||||
private readonly short _eventType;
|
||||
|
||||
public MessageHandler(EventType eventType)
|
||||
public MessageHandler(int msgType)
|
||||
{
|
||||
_eventType = (short)(eventType + QMsgType.Highest + 1);
|
||||
|
||||
_eventType = (short)(msgType + QMsgType.Highest + 1);
|
||||
if (_eventType >= short.MaxValue)
|
||||
{
|
||||
DebugLog.ToConsole($"Hey, uh, maybe don't create 32,767 events? You really should never be seeing this." +
|
||||
$"If you are, something has either gone terrible wrong or QSB somehow needs more events that classes in Outer Wilds." +
|
||||
$"In either case, I guess something has gone terribly wrong...", OWML.Common.MessageType.Error);
|
||||
}
|
||||
|
||||
if (QSBNetworkManager.Instance.IsReady)
|
||||
{
|
||||
Init();
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.MeteorSync.Events
|
||||
{
|
||||
public class FragmentDamageEvent : QSBEvent<FragmentDamageMessage>
|
||||
{
|
||||
public override EventType Type => EventType.FragmentDamage;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBFragment, float>.AddListener(EventNames.QSBFragmentDamage, Handler);
|
||||
|
||||
|
@ -11,8 +11,6 @@ namespace QSB.MeteorSync.Events
|
||||
/// pain
|
||||
public class FragmentResyncEvent : QSBEvent<FragmentResyncMessage>
|
||||
{
|
||||
public override EventType Type => EventType.FragmentResync;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBFragment>.AddListener(EventNames.QSBFragmentResync, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.MeteorSync.Events
|
||||
{
|
||||
public class MeteorLaunchEvent : QSBEvent<MeteorLaunchMessage>
|
||||
{
|
||||
public override EventType Type => EventType.MeteorLaunch;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBMeteorLauncher>.AddListener(EventNames.QSBMeteorLaunch, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.MeteorSync.Events
|
||||
{
|
||||
public class MeteorPreLaunchEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.MeteorPreLaunch;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBMeteorLauncher>.AddListener(EventNames.QSBMeteorPreLaunch, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.MeteorSync.Events
|
||||
{
|
||||
public class MeteorSpecialImpactEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.MeteorSpecialImpact;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBMeteor>.AddListener(EventNames.QSBMeteorSpecialImpact, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.OrbSync.Events
|
||||
{
|
||||
public class OrbSlotEvent : QSBEvent<OrbSlotMessage>
|
||||
{
|
||||
public override EventType Type => EventType.OrbSlot;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, int, bool>.AddListener(EventNames.QSBOrbSlot, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, int, bool>.RemoveListener(EventNames.QSBOrbSlot, Handler);
|
||||
|
||||
|
@ -12,8 +12,6 @@ namespace QSB.OrbSync.Events
|
||||
{
|
||||
public class OrbUserEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.OrbUser;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int>.AddListener(EventNames.QSBOrbUser, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int>.RemoveListener(EventNames.QSBOrbUser, Handler);
|
||||
|
||||
|
@ -26,6 +26,7 @@ using QSB.Tools.ProbeLauncherTool.Patches;
|
||||
using QSB.Tools.SignalscopeTool.FrequencySync.Patches;
|
||||
using QSB.Tools.TranslatorTool.TranslationSync.Patches;
|
||||
using QSB.Utility;
|
||||
using QSB.ZeroGCaveSync.Patches;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -77,7 +78,8 @@ namespace QSB.Patches
|
||||
new AnglerPatches(),
|
||||
new MeteorClientPatches(),
|
||||
new MeteorServerPatches(),
|
||||
new TravelerControllerPatches()
|
||||
new TravelerControllerPatches(),
|
||||
new ZeroGCavePatches()
|
||||
};
|
||||
|
||||
TypeToInstance = new Dictionary<QSBPatchTypes, Harmony>
|
||||
|
@ -10,8 +10,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
internal class EnterLeaveEvent : QSBEvent<EnumWorldObjectMessage<EnterLeaveType>>
|
||||
{
|
||||
public override EventType Type => EventType.EnterLeave;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger.AddListener(EventNames.EnterQuantumMoon, () => Handler(EnterLeaveType.EnterMoon));
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
internal class LaunchCodesEvent : QSBEvent<PlayerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.LaunchCodes;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBLearnLaunchCodes, Handler);
|
||||
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBLearnLaunchCodes, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
internal class PlayerEntangledEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerEntangle;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int>.AddListener(EventNames.QSBPlayerEntangle, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int>.RemoveListener(EventNames.QSBPlayerEntangle, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
public class PlayerInformationEvent : QSBEvent<PlayerInformationMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerInformation;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBPlayerInformation, Handler);
|
||||
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBPlayerInformation, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
public class PlayerJoinEvent : QSBEvent<PlayerJoinMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerJoin;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<string>.AddListener(EventNames.QSBPlayerJoin, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<string>.RemoveListener(EventNames.QSBPlayerJoin, Handler);
|
||||
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
internal class PlayerKickEvent : QSBEvent<EnumMessage<KickReason>>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerKick;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<uint, KickReason>.AddListener(EventNames.QSBPlayerKick, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<uint, KickReason>.RemoveListener(EventNames.QSBPlayerKick, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.Player.Events
|
||||
{
|
||||
public class PlayerReadyEvent : QSBEvent<ToggleMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerReady;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerReady, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<bool>.RemoveListener(EventNames.QSBPlayerReady, Handler);
|
||||
|
||||
|
@ -16,8 +16,6 @@ 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 EventType Type => EventType.RequestStateResync;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger.AddListener(EventNames.QSBRequestStateResync, Handler);
|
||||
public override void CloseListener() => GlobalMessenger.RemoveListener(EventNames.QSBRequestStateResync, Handler);
|
||||
|
||||
|
@ -29,6 +29,7 @@ using QSB.Tools.ProbeLauncherTool;
|
||||
using QSB.Tools.TranslatorTool.TranslationSync;
|
||||
using QSB.Utility;
|
||||
using QSB.WorldSync;
|
||||
using QSB.ZeroGCaveSync;
|
||||
using QuantumUNET;
|
||||
using QuantumUNET.Components;
|
||||
using System.Linq;
|
||||
@ -140,6 +141,7 @@ namespace QSB
|
||||
gameObject.AddComponent<AirlockManager>();
|
||||
gameObject.AddComponent<AnglerManager>();
|
||||
gameObject.AddComponent<MeteorManager>();
|
||||
gameObject.AddComponent<ZeroGCaveManager>();
|
||||
|
||||
DebugBoxManager.Init();
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.QuantumSync.Events
|
||||
{
|
||||
public class MoonStateChangeEvent : QSBEvent<MoonStateChangeMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.MoonStateChange;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, Vector3, int>.AddListener(EventNames.QSBMoonStateChange, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, Vector3, int>.RemoveListener(EventNames.QSBMoonStateChange, Handler);
|
||||
|
||||
|
@ -8,8 +8,6 @@ namespace QSB.QuantumSync.Events
|
||||
{
|
||||
public class MultiStateChangeEvent : QSBEvent<MultiStateChangeMessage>
|
||||
{
|
||||
public override EventType Type => EventType.MultiStateChange;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, int>.AddListener(EventNames.QSBMultiStateChange, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, int>.RemoveListener(EventNames.QSBMultiStateChange, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.QuantumSync.Events
|
||||
{
|
||||
internal class QuantumAuthorityEvent : QSBEvent<QuantumAuthorityMessage>
|
||||
{
|
||||
public override EventType Type => EventType.QuantumAuthority;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, uint>.AddListener(EventNames.QSBQuantumAuthority, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, uint>.RemoveListener(EventNames.QSBQuantumAuthority, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.QuantumSync.Events
|
||||
{
|
||||
public class QuantumShuffleEvent : QSBEvent<QuantumShuffleMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.QuantumShuffle;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, int[]>.AddListener(EventNames.QSBQuantumShuffle, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, int[]>.RemoveListener(EventNames.QSBQuantumShuffle, Handler);
|
||||
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.QuantumSync.Events
|
||||
{
|
||||
public class SocketStateChangeEvent : QSBEvent<SocketStateChangeMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.SocketStateChange;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<int, int, Quaternion>.AddListener(EventNames.QSBSocketStateChange, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<int, int, Quaternion>.RemoveListener(EventNames.QSBSocketStateChange, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.RespawnSync.Events
|
||||
{
|
||||
internal class PlayerRespawnEvent : QSBEvent<PlayerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerRespawn;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<uint>.AddListener(EventNames.QSBPlayerRespawn, Handler);
|
||||
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.RoastingSync.Events
|
||||
{
|
||||
internal class EnterExitRoastingEvent : QSBEvent<BoolWorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.Roasting;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger<Campfire>.AddListener(EventNames.EnterRoastingMode, (Campfire fire) => Handler(fire, true));
|
||||
|
@ -11,8 +11,6 @@ namespace QSB.RoastingSync.Events
|
||||
{
|
||||
internal class MarshmallowEventEvent : QSBEvent<EnumMessage<MarshmallowEventType>>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.MarshmallowEvent;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<MarshmallowEventType>.AddListener(EventNames.QSBMarshmallowEvent, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<MarshmallowEventType>.RemoveListener(EventNames.QSBMarshmallowEvent, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.SatelliteSync.Events
|
||||
{
|
||||
internal class SatelliteProjectorEvent : QSBEvent<BoolMessage>
|
||||
{
|
||||
public override EventType Type => EventType.SatelliteProjector;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger.AddListener(EventNames.QSBEnterSatelliteCamera, () => Handler(true));
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.SatelliteSync.Events
|
||||
{
|
||||
internal class SatelliteProjectorSnapshotEvent : QSBEvent<BoolMessage>
|
||||
{
|
||||
public override EventType Type => EventType.SatelliteProjectorSnapshot;
|
||||
|
||||
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));
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ShipSync.Events.Component
|
||||
{
|
||||
internal class ComponentDamagedEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.ComponentDamaged;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipComponent>.AddListener(EventNames.QSBComponentDamaged, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipComponent>.RemoveListener(EventNames.QSBComponentDamaged, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.ShipSync.Events.Component
|
||||
{
|
||||
internal class ComponentRepairTickEvent : QSBEvent<RepairTickMessage>
|
||||
{
|
||||
public override EventType Type => EventType.ComponentRepairTick;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipComponent, float>.AddListener(EventNames.QSBComponentRepairTick, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipComponent, float>.RemoveListener(EventNames.QSBComponentRepairTick, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ShipSync.Events.Component
|
||||
{
|
||||
internal class ComponentRepairedEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.ComponentRepaired;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipComponent>.AddListener(EventNames.QSBComponentRepaired, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipComponent>.RemoveListener(EventNames.QSBComponentRepaired, Handler);
|
||||
|
||||
|
@ -12,8 +12,6 @@ namespace QSB.ShipSync.Events
|
||||
{
|
||||
internal class FlyShipEvent : QSBEvent<BoolMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.FlyShip;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger<OWRigidbody>.AddListener(EventNames.EnterFlightConsole, (OWRigidbody rigidbody) => Handler(true));
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.ShipSync.Events
|
||||
{
|
||||
internal class FunnelEnableEvent : QSBEvent<PlayerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.EnableFunnel;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger.AddListener(EventNames.QSBEnableFunnel, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.ShipSync.Events
|
||||
{
|
||||
internal class HatchEvent : QSBEvent<BoolMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.OpenHatch;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<bool>.AddListener(EventNames.QSBHatchState, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.ShipSync.Events.Hull
|
||||
{
|
||||
internal class HullChangeIntegrityEvent : QSBEvent<HullChangeIntegrityMessage>
|
||||
{
|
||||
public override EventType Type => EventType.HullChangeIntegrity;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipHull, float>.AddListener(EventNames.QSBHullChangeIntegrity, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipHull, float>.RemoveListener(EventNames.QSBHullChangeIntegrity, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ShipSync.Events.Hull
|
||||
{
|
||||
internal class HullDamagedEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.HullDamaged;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipHull>.AddListener(EventNames.QSBHullDamaged, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipHull>.RemoveListener(EventNames.QSBHullDamaged, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.ShipSync.Events.Hull
|
||||
{
|
||||
internal class HullImpactEvent : QSBEvent<HullImpactMessage>
|
||||
{
|
||||
public override EventType Type => EventType.HullImpact;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipHull, ImpactData, float>.AddListener(EventNames.QSBHullImpact, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipHull, ImpactData, float>.RemoveListener(EventNames.QSBHullImpact, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.ShipSync.Events.Hull
|
||||
{
|
||||
internal class HullRepairTickEvent : QSBEvent<RepairTickMessage>
|
||||
{
|
||||
public override EventType Type => EventType.HullRepairTick;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipHull, float>.AddListener(EventNames.QSBHullRepairTick, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipHull, float>.RemoveListener(EventNames.QSBHullRepairTick, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.ShipSync.Events.Hull
|
||||
{
|
||||
internal class HullRepairedEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.HullRepaired;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<ShipHull>.AddListener(EventNames.QSBHullRepaired, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<ShipHull>.RemoveListener(EventNames.QSBHullRepaired, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.StatueSync.Events
|
||||
{
|
||||
internal class StartStatueEvent : QSBEvent<StartStatueMessage>
|
||||
{
|
||||
public override QSB.Events.EventType Type => QSB.Events.EventType.StartStatue;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<Vector3, Quaternion, float>.AddListener(EventNames.QSBStartStatue, Handler);
|
||||
|
||||
|
@ -4,8 +4,6 @@ namespace QSB.TimeSync.Events
|
||||
{
|
||||
public class ServerTimeEvent : QSBEvent<ServerTimeMessage>
|
||||
{
|
||||
public override EventType Type => EventType.ServerTime;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<float, int>.AddListener(EventNames.QSBServerTime, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<float, int>.RemoveListener(EventNames.QSBServerTime, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.FlashlightTool.Events
|
||||
{
|
||||
public class PlayerFlashlightEvent : QSBEvent<ToggleMessage>
|
||||
{
|
||||
public override EventType Type => EventType.FlashlightActiveChange;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger.AddListener(EventNames.TurnOnFlashlight, HandleTurnOn);
|
||||
|
@ -9,8 +9,6 @@ namespace QSB.Tools.ProbeLauncherTool.Events
|
||||
{
|
||||
private bool _nonPlayerLauncherEquipped;
|
||||
|
||||
public override EventType Type => EventType.ProbeLauncherActiveChange;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger<ProbeLauncher>.AddListener(EventNames.ProbeLauncherEquipped, HandleEquip);
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.Tools.ProbeLauncherTool.Events
|
||||
{
|
||||
internal class LaunchProbeEvent : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.LaunchProbe;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBProbeLauncher>.AddListener(EventNames.QSBLaunchProbe, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.ProbeLauncherTool.Events
|
||||
{
|
||||
internal class PlayerLaunchProbeEvent : QSBEvent<PlayerMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerLaunchProbe;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger.AddListener(EventNames.QSBPlayerLaunchProbe, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.ProbeLauncherTool.Events
|
||||
{
|
||||
internal class PlayerRetrieveProbeEvent : QSBEvent<BoolMessage>
|
||||
{
|
||||
public override EventType Type => EventType.PlayerRetrieveProbe;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<bool>.AddListener(EventNames.QSBPlayerRetrieveProbe, Handler);
|
||||
|
||||
|
@ -7,8 +7,6 @@ namespace QSB.Tools.ProbeLauncherTool.Events
|
||||
{
|
||||
internal class RetrieveProbeEvent : QSBEvent<BoolWorldObjectMessage>
|
||||
{
|
||||
public override EventType Type => EventType.RetrieveProbe;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<QSBProbeLauncher, bool>.AddListener(EventNames.QSBRetrieveProbe, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.ProbeTool.Events
|
||||
{
|
||||
internal class PlayerProbeEvent : QSBEvent<EnumMessage<ProbeEvent>>
|
||||
{
|
||||
public override EventType Type => EventType.ProbeEvent;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<ProbeEvent>.AddListener(EventNames.QSBProbeEvent, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.ProbeTool.Events
|
||||
{
|
||||
internal class ProbeStartRetrieveEvent : QSBEvent<FloatMessage>
|
||||
{
|
||||
public override EventType Type => EventType.ProbeStartRetrieve;
|
||||
|
||||
public override void SetupListener()
|
||||
=> GlobalMessenger<float>.AddListener(EventNames.QSBProbeStartRetrieve, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.SignalscopeTool.Events
|
||||
{
|
||||
public class PlayerSignalscopeEvent : QSBEvent<ToggleMessage>
|
||||
{
|
||||
public override EventType Type => EventType.SignalscopeActiveChange;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger<Signalscope>.AddListener(EventNames.EquipSignalscope, HandleEquip);
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.SignalscopeTool.FrequencySync.Events
|
||||
{
|
||||
public class IdentifyFrequencyEvent : QSBEvent<EnumMessage<SignalFrequency>>
|
||||
{
|
||||
public override EventType Type => EventType.IdentifyFrequency;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<SignalFrequency>.AddListener(EventNames.QSBIdentifyFrequency, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<SignalFrequency>.RemoveListener(EventNames.QSBIdentifyFrequency, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.SignalscopeTool.FrequencySync.Events
|
||||
{
|
||||
public class IdentifySignalEvent : QSBEvent<EnumMessage<SignalName>>
|
||||
{
|
||||
public override EventType Type => EventType.IdentifySignal;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<SignalName>.AddListener(EventNames.QSBIdentifySignal, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<SignalName>.RemoveListener(EventNames.QSBIdentifySignal, Handler);
|
||||
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.TranslatorTool.Events
|
||||
{
|
||||
public class PlayerTranslatorEvent : QSBEvent<ToggleMessage>
|
||||
{
|
||||
public override EventType Type => EventType.TranslatorActiveChange;
|
||||
|
||||
public override void SetupListener()
|
||||
{
|
||||
GlobalMessenger.AddListener(EventNames.EquipTranslator, HandleEquip);
|
||||
|
@ -6,8 +6,6 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.Events
|
||||
{
|
||||
public class SetAsTranslatedEvent : QSBEvent<SetAsTranslatedMessage>
|
||||
{
|
||||
public override EventType Type => EventType.TextTranslated;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<NomaiTextType, int, int>.AddListener(EventNames.QSBTextTranslated, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<NomaiTextType, int, int>.RemoveListener(EventNames.QSBTextTranslated, Handler);
|
||||
|
||||
|
@ -5,8 +5,6 @@ namespace QSB.Utility.Events
|
||||
{
|
||||
public class DebugEvent : QSBEvent<EnumMessage<DebugEventEnum>>
|
||||
{
|
||||
public override EventType Type => EventType.DebugEvent;
|
||||
|
||||
public override void SetupListener() => GlobalMessenger<DebugEventEnum>.AddListener(EventNames.QSBDebugEvent, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<DebugEventEnum>.RemoveListener(EventNames.QSBDebugEvent, Handler);
|
||||
|
||||
|
@ -19,7 +19,7 @@ namespace QSB.Utility.VariableSync
|
||||
|
||||
public virtual void Awake()
|
||||
{
|
||||
QNetworkServer.instance.m_SimpleServerSimple.RegisterHandlerSafe((short)QSB.Events.EventType.VariableSync, HandleVariable);
|
||||
QNetworkServer.instance.m_SimpleServerSimple.RegisterHandlerSafe(short.MaxValue, HandleVariable);
|
||||
|
||||
if (LocalPlayerAuthority)
|
||||
{
|
||||
@ -93,7 +93,7 @@ namespace QSB.Utility.VariableSync
|
||||
// TODO - this sends a message, even when the value hasnt changed! this is really bad!
|
||||
if (QClientScene.readyConnection != null)
|
||||
{
|
||||
_writer.StartMessage((short)QSB.Events.EventType.VariableSync);
|
||||
_writer.StartMessage(short.MaxValue);
|
||||
_writer.Write(NetId);
|
||||
_writer.Write(_index);
|
||||
WriteData(_writer);
|
||||
|
32
QSB/ZeroGCaveSync/Events/SatelliteNodeRepairTick.cs
Normal file
32
QSB/ZeroGCaveSync/Events/SatelliteNodeRepairTick.cs
Normal file
@ -0,0 +1,32 @@
|
||||
using QSB.Events;
|
||||
using QSB.ShipSync.Events;
|
||||
using QSB.WorldSync;
|
||||
using QSB.ZeroGCaveSync.WorldObjects;
|
||||
|
||||
namespace QSB.ZeroGCaveSync.Events
|
||||
{
|
||||
internal class SatelliteNodeRepairTick : QSBEvent<RepairTickMessage>
|
||||
{
|
||||
public override void SetupListener() => GlobalMessenger<SatelliteNode, float>.AddListener(EventNames.QSBSatelliteRepairTick, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<SatelliteNode, float>.RemoveListener(EventNames.QSBSatelliteRepairTick, Handler);
|
||||
|
||||
private void Handler(SatelliteNode node, float repairFraction) => SendEvent(CreateMessage(node, repairFraction));
|
||||
|
||||
private RepairTickMessage CreateMessage(SatelliteNode node, float repairFraction)
|
||||
{
|
||||
var worldObject = QSBWorldSync.GetWorldFromUnity<QSBSatelliteNode>(node);
|
||||
return new RepairTickMessage
|
||||
{
|
||||
AboutId = LocalPlayerId,
|
||||
ObjectId = worldObject.ObjectId,
|
||||
RepairNumber = repairFraction
|
||||
};
|
||||
}
|
||||
|
||||
public override void OnReceiveRemote(bool server, RepairTickMessage message)
|
||||
{
|
||||
var worldObject = QSBWorldSync.GetWorldFromId<QSBSatelliteNode>(message.ObjectId);
|
||||
worldObject.RepairTick(message.RepairNumber);
|
||||
}
|
||||
}
|
||||
}
|
31
QSB/ZeroGCaveSync/Events/SatelliteNodeRepaired.cs
Normal file
31
QSB/ZeroGCaveSync/Events/SatelliteNodeRepaired.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using QSB.Events;
|
||||
using QSB.WorldSync;
|
||||
using QSB.WorldSync.Events;
|
||||
using QSB.ZeroGCaveSync.WorldObjects;
|
||||
|
||||
namespace QSB.ZeroGCaveSync.Events
|
||||
{
|
||||
internal class SatelliteNodeRepaired : QSBEvent<WorldObjectMessage>
|
||||
{
|
||||
public override void SetupListener() => GlobalMessenger<SatelliteNode>.AddListener(EventNames.QSBSatelliteRepaired, Handler);
|
||||
public override void CloseListener() => GlobalMessenger<SatelliteNode>.RemoveListener(EventNames.QSBSatelliteRepaired, Handler);
|
||||
|
||||
private void Handler(SatelliteNode node) => SendEvent(CreateMessage(node));
|
||||
|
||||
private WorldObjectMessage CreateMessage(SatelliteNode node)
|
||||
{
|
||||
var worldObject = QSBWorldSync.GetWorldFromUnity<QSBSatelliteNode>(node);
|
||||
return new WorldObjectMessage
|
||||
{
|
||||
AboutId = LocalPlayerId,
|
||||
ObjectId = worldObject.ObjectId
|
||||
};
|
||||
}
|
||||
|
||||
public override void OnReceiveRemote(bool server, WorldObjectMessage message)
|
||||
{
|
||||
var worldObject = QSBWorldSync.GetWorldFromId<QSBSatelliteNode>(message.ObjectId);
|
||||
worldObject.SetRepaired();
|
||||
}
|
||||
}
|
||||
}
|
63
QSB/ZeroGCaveSync/Patches/ZeroGCavePatches.cs
Normal file
63
QSB/ZeroGCaveSync/Patches/ZeroGCavePatches.cs
Normal file
@ -0,0 +1,63 @@
|
||||
using HarmonyLib;
|
||||
using QSB.Events;
|
||||
using QSB.Patches;
|
||||
using QSB.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.ZeroGCaveSync.Patches
|
||||
{
|
||||
[HarmonyPatch]
|
||||
internal class ZeroGCavePatches : QSBPatch
|
||||
{
|
||||
public override QSBPatchTypes Type => QSBPatchTypes.OnClientConnect;
|
||||
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPatch(typeof(SatelliteNode), nameof(SatelliteNode.RepairTick))]
|
||||
public static bool SatelliteNode_RepairTick(SatelliteNode __instance)
|
||||
{
|
||||
if (!__instance._damaged)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
__instance._repairFraction = Mathf.Clamp01(__instance._repairFraction + (Time.deltaTime / __instance._repairTime));
|
||||
if (__instance._repairFraction >= 1f)
|
||||
{
|
||||
QSBEventManager.FireEvent(EventNames.QSBSatelliteRepaired, __instance);
|
||||
__instance._damaged = false;
|
||||
var component = Locator.GetPlayerTransform().GetComponent<ReferenceFrameTracker>();
|
||||
if (component.GetReferenceFrame(true) == __instance._rfVolume.GetReferenceFrame())
|
||||
{
|
||||
component.UntargetReferenceFrame();
|
||||
}
|
||||
|
||||
if (__instance._rfVolume != null)
|
||||
{
|
||||
__instance._rfVolume.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
if (__instance._lanternLight != null)
|
||||
{
|
||||
__instance._lanternLight.color = __instance._lightRepairedColor;
|
||||
}
|
||||
|
||||
if (__instance._lanternEmissiveRenderer != null)
|
||||
{
|
||||
__instance._lanternEmissiveRenderer.sharedMaterials.CopyTo(__instance._lanternMaterials, 0);
|
||||
__instance._lanternMaterials[__instance._lanternMaterialIndex] = __instance._lanternRepairedMaterial;
|
||||
__instance._lanternEmissiveRenderer.sharedMaterials = __instance._lanternMaterials;
|
||||
}
|
||||
|
||||
__instance.RaiseEvent("OnRepaired", __instance);
|
||||
}
|
||||
|
||||
if (__instance._damageEffect != null)
|
||||
{
|
||||
__instance._damageEffect.SetEffectBlend(1f - __instance._repairFraction);
|
||||
}
|
||||
|
||||
QSBEventManager.FireEvent(EventNames.QSBSatelliteRepairTick, __instance, __instance._repairFraction);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
52
QSB/ZeroGCaveSync/WorldObjects/QSBSatelliteNode.cs
Normal file
52
QSB/ZeroGCaveSync/WorldObjects/QSBSatelliteNode.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using QSB.Utility;
|
||||
using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ZeroGCaveSync.WorldObjects
|
||||
{
|
||||
internal class QSBSatelliteNode : WorldObject<SatelliteNode>
|
||||
{
|
||||
public override void Init(SatelliteNode component, int id)
|
||||
{
|
||||
ObjectId = id;
|
||||
AttachedObject = component;
|
||||
}
|
||||
|
||||
public void SetRepaired()
|
||||
{
|
||||
DebugLog.DebugWrite($"[SATELLITE NODE] {AttachedObject} Set repaired.");
|
||||
AttachedObject._damaged = false;
|
||||
var component = Locator.GetPlayerTransform().GetComponent<ReferenceFrameTracker>();
|
||||
if (component.GetReferenceFrame(true) == AttachedObject._rfVolume.GetReferenceFrame())
|
||||
{
|
||||
component.UntargetReferenceFrame();
|
||||
}
|
||||
|
||||
if (AttachedObject._rfVolume != null)
|
||||
{
|
||||
AttachedObject._rfVolume.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
if (AttachedObject._lanternLight != null)
|
||||
{
|
||||
AttachedObject._lanternLight.color = AttachedObject._lightRepairedColor;
|
||||
}
|
||||
|
||||
if (AttachedObject._lanternEmissiveRenderer != null)
|
||||
{
|
||||
AttachedObject._lanternEmissiveRenderer.sharedMaterials.CopyTo(AttachedObject._lanternMaterials, 0);
|
||||
AttachedObject._lanternMaterials[AttachedObject._lanternMaterialIndex] = AttachedObject._lanternRepairedMaterial;
|
||||
AttachedObject._lanternEmissiveRenderer.sharedMaterials = AttachedObject._lanternMaterials;
|
||||
}
|
||||
|
||||
AttachedObject.RaiseEvent("OnRepaired", AttachedObject);
|
||||
}
|
||||
|
||||
public void RepairTick(float repairFraction)
|
||||
{
|
||||
DebugLog.DebugWrite($"[SATELLITE NODE] {AttachedObject} repair tick {repairFraction}");
|
||||
AttachedObject._repairFraction = repairFraction;
|
||||
var damageEffect = AttachedObject._damageEffect;
|
||||
damageEffect.SetEffectBlend(1f - repairFraction);
|
||||
}
|
||||
}
|
||||
}
|
11
QSB/ZeroGCaveSync/ZeroGCaveManager.cs
Normal file
11
QSB/ZeroGCaveSync/ZeroGCaveManager.cs
Normal file
@ -0,0 +1,11 @@
|
||||
using QSB.WorldSync;
|
||||
using QSB.ZeroGCaveSync.WorldObjects;
|
||||
|
||||
namespace QSB.ZeroGCaveSync
|
||||
{
|
||||
internal class ZeroGCaveManager : WorldObjectManager
|
||||
{
|
||||
protected override void RebuildWorldObjects(OWScene scene)
|
||||
=> QSBWorldSync.Init<QSBSatelliteNode, SatelliteNode>();
|
||||
}
|
||||
}
|
@ -3,6 +3,6 @@
|
||||
"drawLines": true,
|
||||
"showQuantumVisibilityObjects": false,
|
||||
"showQuantumDebugBoxes": false,
|
||||
"avoidTimeSync": true,
|
||||
"avoidTimeSync": false,
|
||||
"skipTitleScreen": true
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
"body": "- Disable *all* other mods. (Can heavily affect performance)\n- Make sure you are not running any other network-intensive applications.\n- Make sure you have forwarded/opened the correct ports. (See the GitHub readme.)"
|
||||
},
|
||||
"uniqueName": "Raicuparta.QuantumSpaceBuddies",
|
||||
"version": "0.13.0",
|
||||
"version": "0.14.0",
|
||||
"owmlVersion": "2.1.0",
|
||||
"dependencies": [ "_nebula.MenuFramework" ]
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user