33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using NitroxClient.Communication.Abstract;
|
|
using NitroxClient.MonoBehaviours;
|
|
using NitroxModel.Helper;
|
|
using NitroxModel.Packets;
|
|
using NitroxModel_Subnautica.DataStructures;
|
|
|
|
namespace NitroxPatcher.Patches.Dynamic;
|
|
|
|
public sealed partial class KnownTech_NotifyAdd_Patch : NitroxPatch, IDynamicPatch
|
|
{
|
|
private static readonly MethodInfo TARGET_METHOD = Reflect.Method(() => KnownTech.NotifyAdd(default, default));
|
|
|
|
public static void Prefix(TechType techType, bool verbose)
|
|
{
|
|
if (!Multiplayer.Main || !Multiplayer.Main.InitialSyncCompleted)
|
|
{
|
|
return;
|
|
}
|
|
List<PDAScanner.Entry> partialEntries = new();
|
|
PDAScanner.GetPartialEntriesWhichUnlocks(techType, partialEntries, true);
|
|
|
|
Resolve<IPacketSender>().Send(new KnownTechEntryAdd(
|
|
KnownTechEntryAdd.EntryCategory.KNOWN,
|
|
techType.ToDto(),
|
|
verbose,
|
|
partialEntries.Select(entry => entry.techType.ToDto()).ToList()
|
|
));
|
|
}
|
|
}
|