mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-28 03:40:01 +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 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 QSBProbeEvent = nameof(QSBProbeEvent);
|
||||
public const string QSBProbeStartRetrieve = nameof(QSBProbeStartRetrieve);
|
||||
@ -68,6 +66,5 @@
|
||||
public const string QSBExitSatelliteCamera = nameof(QSBExitSatelliteCamera);
|
||||
public const string QSBSatelliteSnapshot = nameof(QSBSatelliteSnapshot);
|
||||
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
|
||||
{
|
||||
public float RepairNumber { get; set; }
|
||||
|
||||
public override void Deserialize(QNetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
RepairNumber = reader.ReadSingle();
|
||||
}
|
||||
public float RepairNumber;
|
||||
|
||||
public override void Serialize(QNetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(RepairNumber);
|
||||
}
|
||||
|
||||
public override void Deserialize(QNetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
RepairNumber = reader.ReadSingle();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
using HarmonyLib;
|
||||
using OWML.Utils;
|
||||
using QSB.Events;
|
||||
using QSB.Messaging;
|
||||
using QSB.Patches;
|
||||
using QSB.ShipSync.Messages.Component;
|
||||
using QSB.ShipSync.Messages.Hull;
|
||||
using QSB.ShipSync.TransformSync;
|
||||
using QSB.ShipSync.WorldObjects;
|
||||
using QSB.Utility;
|
||||
using QSB.WorldSync;
|
||||
using System;
|
||||
@ -140,7 +144,8 @@ namespace QSB.ShipSync.Patches
|
||||
__instance._repairFraction = 1f;
|
||||
__instance.GetType().GetAnyMethod("OnComponentRepaired").Invoke(__instance, null);
|
||||
__instance.RaiseEvent("OnRepaired", __instance);
|
||||
QSBEventManager.FireEvent(EventNames.QSBComponentRepaired, __instance);
|
||||
QSBWorldSync.GetWorldFromUnity<QSBShipComponent>(__instance)
|
||||
.SendMessage(new ComponentRepairedMessage());
|
||||
}
|
||||
|
||||
__instance.GetType().GetAnyMethod("UpdateColliderState").Invoke(__instance, null);
|
||||
@ -233,7 +238,8 @@ namespace QSB.ShipSync.Patches
|
||||
{
|
||||
____damaged = false;
|
||||
__instance.RaiseEvent("OnRepaired", __instance);
|
||||
QSBEventManager.FireEvent(EventNames.QSBHullRepaired, __instance);
|
||||
QSBWorldSync.GetWorldFromUnity<QSBShipHull>(__instance)
|
||||
.SendMessage(new HullRepairedMessage());
|
||||
}
|
||||
|
||||
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 QSB.Events;
|
||||
using QSB.Messaging;
|
||||
using QSB.Patches;
|
||||
using QSB.Utility;
|
||||
using QSB.WorldSync;
|
||||
using QSB.ZeroGCaveSync.Messages;
|
||||
using QSB.ZeroGCaveSync.WorldObjects;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.ZeroGCaveSync.Patches
|
||||
@ -23,7 +27,8 @@ namespace QSB.ZeroGCaveSync.Patches
|
||||
__instance._repairFraction = Mathf.Clamp01(__instance._repairFraction + (Time.deltaTime / __instance._repairTime));
|
||||
if (__instance._repairFraction >= 1f)
|
||||
{
|
||||
QSBEventManager.FireEvent(EventNames.QSBSatelliteRepaired, __instance);
|
||||
QSBWorldSync.GetWorldFromUnity<QSBSatelliteNode>(__instance)
|
||||
.SendMessage(new SatelliteNodeRepairedMessage());
|
||||
__instance._damaged = false;
|
||||
var component = Locator.GetPlayerTransform().GetComponent<ReferenceFrameTracker>();
|
||||
if (component.GetReferenceFrame(true) == __instance._rfVolume.GetReferenceFrame())
|
||||
|
Loading…
x
Reference in New Issue
Block a user