Sync ship ignition audio

This commit is contained in:
Nick 2022-08-27 23:21:20 -04:00
parent 232aec2a52
commit 768b47c81c
3 changed files with 54 additions and 0 deletions

View File

@ -33,4 +33,7 @@ public static class OWEvents
public const string ExitDreamWorld = nameof(ExitDreamWorld);
public const string EnterRemoteFlightConsole = nameof(EnterRemoteFlightConsole);
public const string ExitRemoteFlightConsole = nameof(ExitRemoteFlightConsole);
public const string StartShipIgnition = nameof(StartShipIgnition);
public const string CompleteShipIgnition = nameof(CompleteShipIgnition);
public const string CancelShipIgnition = nameof(CancelShipIgnition);
}

View File

@ -0,0 +1,48 @@
using QSB.Messaging;
using QSB.Player;
using static QSB.ShipSync.Messages.ShipIgnitionMessage;
namespace QSB.ShipSync.Messages;
internal class ShipIgnitionMessage : QSBMessage<ShipIgnitionType>
{
public enum ShipIgnitionType
{
START_IGNITION,
COMPLETE_IGNITION,
CANCEL_IGNITION
}
static ShipIgnitionMessage()
{
GlobalMessenger.AddListener(OWEvents.StartShipIgnition, () => Handler(ShipIgnitionType.START_IGNITION));
GlobalMessenger.AddListener(OWEvents.CompleteShipIgnition, () => Handler(ShipIgnitionType.COMPLETE_IGNITION));
GlobalMessenger.AddListener(OWEvents.CancelShipIgnition, () => Handler(ShipIgnitionType.CANCEL_IGNITION));
}
public ShipIgnitionMessage(ShipIgnitionType data) : base(data) { }
private static void Handler(ShipIgnitionType type)
{
if (QSBPlayerManager.LocalPlayer.FlyingShip)
{
new ShipIgnitionMessage(type).Send();
}
}
public override void OnReceiveRemote()
{
switch (Data)
{
case ShipIgnitionType.START_IGNITION:
GlobalMessenger.FireEvent(OWEvents.StartShipIgnition);
break;
case ShipIgnitionType.COMPLETE_IGNITION:
GlobalMessenger.FireEvent(OWEvents.CompleteShipIgnition);
break;
case ShipIgnitionType.CANCEL_IGNITION:
GlobalMessenger.FireEvent(OWEvents.CancelShipIgnition);
break;
}
}
}

View File

@ -136,6 +136,9 @@ internal class ShipManager : WorldObjectManager
QSBWorldSync.Init<QSBShipDetachableModule, ShipDetachableModule>();
QSBWorldSync.Init<QSBShipDetachableLeg, ShipDetachableLeg>();
// Make sure ignition source is 3D
QSBWorldSync.GetUnityObject<ShipThrusterAudio>()._ignitionSource.spatialBlend = 1f;
}
public override void UnbuildWorldObjects()