mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-11 19:13:32 +00:00
add entangle lock patch
This commit is contained in:
parent
807af5ad2d
commit
72a6bbed22
@ -170,6 +170,7 @@
|
||||
<Compile Include="QuantumSync\Events\SocketStateChangeMessage.cs" />
|
||||
<Compile Include="QuantumSync\Patches\QuantumPatches.cs" />
|
||||
<Compile Include="QuantumSync\WorldObjects\QSBMultiStateQuantumObject.cs" />
|
||||
<Compile Include="QuantumSync\WorldObjects\QSBQuantumMoon.cs" />
|
||||
<Compile Include="QuantumSync\WorldObjects\QSBQuantumObject.cs" />
|
||||
<Compile Include="QuantumSync\WorldObjects\QSBQuantumShuffleObject.cs" />
|
||||
<Compile Include="QuantumSync\WorldObjects\QSBSocketedQuantumObject.cs" />
|
||||
|
@ -29,6 +29,7 @@ namespace QSB.QuantumSync.Patches
|
||||
QSBCore.Helper.HarmonyHelper.AddPrefix<QuantumShrine>("OnEntry", typeof(QuantumPatches), nameof(Shrine_OnEntry));
|
||||
QSBCore.Helper.HarmonyHelper.AddPrefix<QuantumShrine>("OnExit", typeof(QuantumPatches), nameof(Shrine_OnExit));
|
||||
QSBCore.Helper.HarmonyHelper.AddPrefix<QuantumMoon>("CheckPlayerFogProximity", typeof(QuantumPatches), nameof(Moon_CheckPlayerFogProximity));
|
||||
QSBCore.Helper.HarmonyHelper.AddPrefix<QuantumObject>("IsLockedByPlayerContact", typeof(QuantumPatches), nameof(Object_IsLockedByPlayerContact));
|
||||
}
|
||||
|
||||
public override void DoUnpatches()
|
||||
@ -43,6 +44,14 @@ namespace QSB.QuantumSync.Patches
|
||||
QSBCore.Helper.HarmonyHelper.Unpatch<QuantumShrine>("OnEntry");
|
||||
QSBCore.Helper.HarmonyHelper.Unpatch<QuantumShrine>("OnExit");
|
||||
QSBCore.Helper.HarmonyHelper.Unpatch<QuantumMoon>("CheckPlayerFogProximity");
|
||||
QSBCore.Helper.HarmonyHelper.Unpatch<QuantumObject>("IsLockedByPlayerContact");
|
||||
}
|
||||
|
||||
public static bool Object_IsLockedByPlayerContact(ref bool __result, QuantumObject __instance)
|
||||
{
|
||||
var playersEntangled = QuantumManager.GetEntangledPlayers(__instance);
|
||||
__result = playersEntangled.Count() != 0 && __instance.IsIlluminated();
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool Socketed_ChangeQuantumState(
|
||||
|
@ -32,6 +32,7 @@ namespace QSB.QuantumSync
|
||||
QSBWorldSync.Init<QSBMultiStateQuantumObject, MultiStateQuantumObject>();
|
||||
QSBWorldSync.Init<QSBQuantumSocket, QuantumSocket>();
|
||||
QSBWorldSync.Init<QSBQuantumShuffleObject, QuantumShuffleObject>();
|
||||
QSBWorldSync.Init<QSBQuantumMoon, QuantumMoon>();
|
||||
if (scene == OWScene.SolarSystem)
|
||||
{
|
||||
Shrine = Resources.FindObjectsOfTypeAll<QuantumShrine>().First();
|
||||
@ -105,6 +106,10 @@ namespace QSB.QuantumSync
|
||||
{
|
||||
worldObj = QSBWorldSync.GetWorldObject<QSBQuantumShuffleObject, QuantumShuffleObject>((QuantumShuffleObject)unityObject);
|
||||
}
|
||||
else if (unityObject.GetType() == typeof(QuantumMoon))
|
||||
{
|
||||
worldObj = QSBWorldSync.GetWorldObject<QSBQuantumMoon, QuantumMoon>((QuantumMoon)unityObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - couldn't work out type of QuantumObject {unityObject.name}.", MessageType.Warning);
|
||||
|
12
QSB/QuantumSync/WorldObjects/QSBQuantumMoon.cs
Normal file
12
QSB/QuantumSync/WorldObjects/QSBQuantumMoon.cs
Normal file
@ -0,0 +1,12 @@
|
||||
namespace QSB.QuantumSync.WorldObjects
|
||||
{
|
||||
class QSBQuantumMoon : QSBQuantumObject<QuantumMoon>
|
||||
{
|
||||
public override void Init(QuantumMoon moonObject, int id)
|
||||
{
|
||||
ObjectId = id;
|
||||
AttachedObject = moonObject;
|
||||
ControllingPlayer = 1u;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user