Exemple #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);
    }
Exemple #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);
    }
    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);
    }
    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);
    }
    // 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();
    }