mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-28 12:40:28 +00:00
*RepairedMessage
This commit is contained in:
parent
9987802c8e
commit
111601fdb5
@ -52,10 +52,8 @@
|
|||||||
public const string QSBHullImpact = nameof(QSBHullImpact);
|
public const string QSBHullImpact = nameof(QSBHullImpact);
|
||||||
public const string QSBHullDamaged = nameof(QSBHullDamaged);
|
public const string QSBHullDamaged = nameof(QSBHullDamaged);
|
||||||
public const string QSBHullChangeIntegrity = nameof(QSBHullChangeIntegrity);
|
public const string QSBHullChangeIntegrity = nameof(QSBHullChangeIntegrity);
|
||||||
public const string QSBHullRepaired = nameof(QSBHullRepaired);
|
|
||||||
public const string QSBHullRepairTick = nameof(QSBHullRepairTick);
|
public const string QSBHullRepairTick = nameof(QSBHullRepairTick);
|
||||||
public const string QSBComponentDamaged = nameof(QSBComponentDamaged);
|
public const string QSBComponentDamaged = nameof(QSBComponentDamaged);
|
||||||
public const string QSBComponentRepaired = nameof(QSBComponentRepaired);
|
|
||||||
public const string QSBComponentRepairTick = nameof(QSBComponentRepairTick);
|
public const string QSBComponentRepairTick = nameof(QSBComponentRepairTick);
|
||||||
public const string QSBProbeEvent = nameof(QSBProbeEvent);
|
public const string QSBProbeEvent = nameof(QSBProbeEvent);
|
||||||
public const string QSBProbeStartRetrieve = nameof(QSBProbeStartRetrieve);
|
public const string QSBProbeStartRetrieve = nameof(QSBProbeStartRetrieve);
|
||||||
@ -68,6 +66,5 @@
|
|||||||
public const string QSBExitSatelliteCamera = nameof(QSBExitSatelliteCamera);
|
public const string QSBExitSatelliteCamera = nameof(QSBExitSatelliteCamera);
|
||||||
public const string QSBSatelliteSnapshot = nameof(QSBSatelliteSnapshot);
|
public const string QSBSatelliteSnapshot = nameof(QSBSatelliteSnapshot);
|
||||||
public const string QSBSatelliteRepairTick = nameof(QSBSatelliteRepairTick);
|
public const string QSBSatelliteRepairTick = nameof(QSBSatelliteRepairTick);
|
||||||
public const string QSBSatelliteRepaired = nameof(QSBSatelliteRepairTick);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
using QSB.Events;
|
|
||||||
using QSB.ShipSync.WorldObjects;
|
|
||||||
using QSB.WorldSync;
|
|
||||||
using QSB.WorldSync.Events;
|
|
||||||
|
|
||||||
namespace QSB.ShipSync.Messages.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);
|
|
||||||
|
|
||||||
private void Handler(ShipComponent hull) => SendEvent(CreateMessage(hull));
|
|
||||||
|
|
||||||
private WorldObjectMessage CreateMessage(ShipComponent hull)
|
|
||||||
{
|
|
||||||
var worldObject = QSBWorldSync.GetWorldFromUnity<QSBShipComponent>(hull);
|
|
||||||
return new WorldObjectMessage
|
|
||||||
{
|
|
||||||
AboutId = LocalPlayerId,
|
|
||||||
ObjectId = worldObject.ObjectId
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnReceiveRemote(bool server, WorldObjectMessage message)
|
|
||||||
{
|
|
||||||
var worldObject = QSBWorldSync.GetWorldFromId<QSBShipComponent>(message.ObjectId);
|
|
||||||
worldObject.SetRepaired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
10
QSB/ShipSync/Messages/Component/ComponentRepairedMessage.cs
Normal file
10
QSB/ShipSync/Messages/Component/ComponentRepairedMessage.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using QSB.Messaging;
|
||||||
|
using QSB.ShipSync.WorldObjects;
|
||||||
|
|
||||||
|
namespace QSB.ShipSync.Messages.Component
|
||||||
|
{
|
||||||
|
internal class ComponentRepairedMessage : QSBWorldObjectMessage<QSBShipComponent>
|
||||||
|
{
|
||||||
|
public override void OnReceiveRemote() => WorldObject.SetRepaired();
|
||||||
|
}
|
||||||
|
}
|
@ -1,33 +0,0 @@
|
|||||||
using QSB.Events;
|
|
||||||
using QSB.ShipSync.WorldObjects;
|
|
||||||
using QSB.WorldSync;
|
|
||||||
using QSB.WorldSync.Events;
|
|
||||||
|
|
||||||
namespace QSB.ShipSync.Messages.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);
|
|
||||||
|
|
||||||
private void Handler(ShipHull hull) => SendEvent(CreateMessage(hull));
|
|
||||||
|
|
||||||
private WorldObjectMessage CreateMessage(ShipHull hull)
|
|
||||||
{
|
|
||||||
var worldObject = QSBWorldSync.GetWorldFromUnity<QSBShipHull>(hull);
|
|
||||||
return new WorldObjectMessage
|
|
||||||
{
|
|
||||||
AboutId = LocalPlayerId,
|
|
||||||
ObjectId = worldObject.ObjectId
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnReceiveRemote(bool server, WorldObjectMessage message)
|
|
||||||
{
|
|
||||||
var worldObject = QSBWorldSync.GetWorldFromId<QSBShipHull>(message.ObjectId);
|
|
||||||
worldObject.SetRepaired();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
10
QSB/ShipSync/Messages/Hull/HullRepairedMessage.cs
Normal file
10
QSB/ShipSync/Messages/Hull/HullRepairedMessage.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using QSB.Messaging;
|
||||||
|
using QSB.ShipSync.WorldObjects;
|
||||||
|
|
||||||
|
namespace QSB.ShipSync.Messages.Hull
|
||||||
|
{
|
||||||
|
internal class HullRepairedMessage : QSBWorldObjectMessage<QSBShipHull>
|
||||||
|
{
|
||||||
|
public override void OnReceiveRemote() => WorldObject.SetRepaired();
|
||||||
|
}
|
||||||
|
}
|
@ -5,18 +5,18 @@ namespace QSB.ShipSync.Messages
|
|||||||
{
|
{
|
||||||
internal class RepairTickMessage : WorldObjectMessage
|
internal class RepairTickMessage : WorldObjectMessage
|
||||||
{
|
{
|
||||||
public float RepairNumber { get; set; }
|
public float RepairNumber;
|
||||||
|
|
||||||
public override void Deserialize(QNetworkReader reader)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader);
|
|
||||||
RepairNumber = reader.ReadSingle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Serialize(QNetworkWriter writer)
|
public override void Serialize(QNetworkWriter writer)
|
||||||
{
|
{
|
||||||
base.Serialize(writer);
|
base.Serialize(writer);
|
||||||
writer.Write(RepairNumber);
|
writer.Write(RepairNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Deserialize(QNetworkReader reader)
|
||||||
|
{
|
||||||
|
base.Deserialize(reader);
|
||||||
|
RepairNumber = reader.ReadSingle();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using OWML.Utils;
|
using OWML.Utils;
|
||||||
using QSB.Events;
|
using QSB.Events;
|
||||||
|
using QSB.Messaging;
|
||||||
using QSB.Patches;
|
using QSB.Patches;
|
||||||
|
using QSB.ShipSync.Messages.Component;
|
||||||
|
using QSB.ShipSync.Messages.Hull;
|
||||||
using QSB.ShipSync.TransformSync;
|
using QSB.ShipSync.TransformSync;
|
||||||
|
using QSB.ShipSync.WorldObjects;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
using System;
|
using System;
|
||||||
@ -140,7 +144,8 @@ namespace QSB.ShipSync.Patches
|
|||||||
__instance._repairFraction = 1f;
|
__instance._repairFraction = 1f;
|
||||||
__instance.GetType().GetAnyMethod("OnComponentRepaired").Invoke(__instance, null);
|
__instance.GetType().GetAnyMethod("OnComponentRepaired").Invoke(__instance, null);
|
||||||
__instance.RaiseEvent("OnRepaired", __instance);
|
__instance.RaiseEvent("OnRepaired", __instance);
|
||||||
QSBEventManager.FireEvent(EventNames.QSBComponentRepaired, __instance);
|
QSBWorldSync.GetWorldFromUnity<QSBShipComponent>(__instance)
|
||||||
|
.SendMessage(new ComponentRepairedMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
__instance.GetType().GetAnyMethod("UpdateColliderState").Invoke(__instance, null);
|
__instance.GetType().GetAnyMethod("UpdateColliderState").Invoke(__instance, null);
|
||||||
@ -233,7 +238,8 @@ namespace QSB.ShipSync.Patches
|
|||||||
{
|
{
|
||||||
____damaged = false;
|
____damaged = false;
|
||||||
__instance.RaiseEvent("OnRepaired", __instance);
|
__instance.RaiseEvent("OnRepaired", __instance);
|
||||||
QSBEventManager.FireEvent(EventNames.QSBHullRepaired, __instance);
|
QSBWorldSync.GetWorldFromUnity<QSBShipHull>(__instance)
|
||||||
|
.SendMessage(new HullRepairedMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (____damageEffect != null)
|
if (____damageEffect != null)
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
using QSB.Events;
|
|
||||||
using QSB.WorldSync;
|
|
||||||
using QSB.WorldSync.Events;
|
|
||||||
using QSB.ZeroGCaveSync.WorldObjects;
|
|
||||||
|
|
||||||
namespace QSB.ZeroGCaveSync.Messages
|
|
||||||
{
|
|
||||||
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);
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
10
QSB/ZeroGCaveSync/Messages/SatelliteNodeRepairedMessage.cs
Normal file
10
QSB/ZeroGCaveSync/Messages/SatelliteNodeRepairedMessage.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using QSB.Messaging;
|
||||||
|
using QSB.ZeroGCaveSync.WorldObjects;
|
||||||
|
|
||||||
|
namespace QSB.ZeroGCaveSync.Messages
|
||||||
|
{
|
||||||
|
internal class SatelliteNodeRepairedMessage : QSBWorldObjectMessage<QSBSatelliteNode>
|
||||||
|
{
|
||||||
|
public override void OnReceiveRemote() => WorldObject.SetRepaired();
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,11 @@
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using QSB.Events;
|
using QSB.Events;
|
||||||
|
using QSB.Messaging;
|
||||||
using QSB.Patches;
|
using QSB.Patches;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
|
using QSB.WorldSync;
|
||||||
|
using QSB.ZeroGCaveSync.Messages;
|
||||||
|
using QSB.ZeroGCaveSync.WorldObjects;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace QSB.ZeroGCaveSync.Patches
|
namespace QSB.ZeroGCaveSync.Patches
|
||||||
@ -23,7 +27,8 @@ namespace QSB.ZeroGCaveSync.Patches
|
|||||||
__instance._repairFraction = Mathf.Clamp01(__instance._repairFraction + (Time.deltaTime / __instance._repairTime));
|
__instance._repairFraction = Mathf.Clamp01(__instance._repairFraction + (Time.deltaTime / __instance._repairTime));
|
||||||
if (__instance._repairFraction >= 1f)
|
if (__instance._repairFraction >= 1f)
|
||||||
{
|
{
|
||||||
QSBEventManager.FireEvent(EventNames.QSBSatelliteRepaired, __instance);
|
QSBWorldSync.GetWorldFromUnity<QSBSatelliteNode>(__instance)
|
||||||
|
.SendMessage(new SatelliteNodeRepairedMessage());
|
||||||
__instance._damaged = false;
|
__instance._damaged = false;
|
||||||
var component = Locator.GetPlayerTransform().GetComponent<ReferenceFrameTracker>();
|
var component = Locator.GetPlayerTransform().GetComponent<ReferenceFrameTracker>();
|
||||||
if (component.GetReferenceFrame(true) == __instance._rfVolume.GetReferenceFrame())
|
if (component.GetReferenceFrame(true) == __instance._rfVolume.GetReferenceFrame())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user