コード例 #1
0
    public static bool Prefix_Serialize(ProtobufSerializerPrecompiled __instance, int num, object obj, ProtoWriter writer)
    {
        bool shouldnotcontinue;

        AlternativeSerializer.Serialize(num, obj, writer, __instance, out shouldnotcontinue);
        return(!shouldnotcontinue);
    }
コード例 #2
0
    public static bool Prefix_Deserialize(ProtobufSerializerPrecompiled __instance, int num, object obj, ProtoReader reader, ref object __result)
    {
        bool shouldnotcontinue;

        __result = AlternativeSerializer.Deserialize(num, obj, reader, __instance, out shouldnotcontinue);
        return(!shouldnotcontinue);
    }
コード例 #3
0
    public void Serialize(object obj, ProtoWriter writer, ProtobufSerializerPrecompiled model)
    {
        var scale = obj as ScaleFixer;

        ProtoWriter.WriteFieldHeader(1, WireType.String, writer);
        var token = ProtoWriter.StartSubItem(null, writer);

        AlternativeSerializer.PrecompSerialize(model, AlternativeSerializer.PrecompGetKey(model, typeof(Vector3)), scale.scale, writer);
        ProtoWriter.EndSubItem(token, writer);
    }
コード例 #4
0
    public object Deserialize(object obj, ProtoReader reader, ProtobufSerializerPrecompiled model)
    {
        var scale = obj as ScaleFixer;

        reader.ReadFieldHeader();
        var token = ProtoReader.StartSubItem(reader);

        scale.scale = (Vector3)AlternativeSerializer.PrecompDeserialize(model, AlternativeSerializer.PrecompGetKey(model, typeof(Vector3)), scale.scale, reader);
        ProtoReader.EndSubItem(token, reader);
        return(scale);
    }
コード例 #5
0
    // todo: patch lootdistribution jsonmapper to insert my own loot data, patch entitycell deserializer to insert new entities into new cells, patch worldentityinfo to make loot work correctly, patch PDAData to insert my own pda entries
    public static void Patch()
    {
        if (!Directory.Exists("Mods"))
        {
            Debug.Log("ModLoader: Folder \"Mods\" not found! Creating...");
            Directory.CreateDirectory("Mods");
            return;
        }

        MainThread = Thread.CurrentThread;
        var instance = HarmonyInstance.Create("com.railway.modloader");

        DLLFinder.FindDLLs("Mods");



        Application.runInBackground = true;

        AlternativeSerializer.RegisterCustomSerializer(-5, typeof(ScaleFixer), new ScaleFixerSerializer());

        DLLFinder.PrepatchDLLs();
        AssetBundleLoader.Unload();
        TechTypePatcher.Patch(instance);



        DLLFinder.PatchDLLs();


        CustomResourceManager.Patch(instance);
        ProtobufSerializerPatcher.Patch(instance);
        CustomSpriteManager.Patch(instance);
        CraftDataPatchHelper.Patch();
        LootPatcher.Patch(instance);
        WorldEntityInfoPatcher.Patch(instance);
        DLLFinder.PostPatchDLLs();
    }