Можете пожалуйста обьяснить, что означает данный код

using System;
using HarmonyLib;
using MelonLoader;

namespace TestMod
{
    // Token: 0x02000003 RID: 3
    public partial class TestMod : MelonMod
    {
        // Token: 0x02000004 RID: 4
        [HarmonyPatch]
        private partial class Patches
        {
            // Token: 0x06000004 RID: 4
            [HarmonyPrefix]
            [HarmonyPatch(typeof(PlatformSteam), "vk", MethodType.Getter)]
            public static bool vkRoom(PlatformSteam __instance, ref socialNetType __result)
            {
                __result = socialNetType.vk;
                return false;
            }
        }
    }
}

как я понимаю этот код должен выбирать сервера от какой платформы подключаются к игре но могли бы вы конкретнее обьяснить что за что отвечает


Ответы (1 шт):

Автор решения: Pavel Mayorov

Harmony - это библиотека для Unity, предназначенная для замены или дополнения реализации методов во время исполнения.

В "нормальном" программировании подобная практика считается грубым костылём и порицается, вместо неё рекомендуется использовать такие практики как оставление точек расширения и внедрение зависимостей. Однако, создатели игр редко думают об удобстве мододелов, и у последних зачастую не остаётся альтернатив подобным костылям.

Конкретно этот код подменяет свойство PlatformSteam.vk так, чтобы оно всегда возвращало socialNetType.vk. Этот патч является крайне странным, поскольку не вполне понятно почему вообще свойство PlatformSteam.vk может возвращать что-то ещё.

→ Ссылка