using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ThumperTheTrain")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ThumperTheTrain")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("036688f5-976a-4d43-a0e0-a2d92c5f10e2")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace ThumperTheTrain
{
[BepInPlugin("com.MamboDancer.DogTheTrain", "DogTheTrain", "1.0.0")]
public class DogTheTrainPlugin : BaseUnityPlugin
{
[HarmonyPatch]
private class PatchCrawlerModel
{
[HarmonyPatch(typeof(MouthDogAI), "Start")]
[HarmonyPostfix]
public static void patchModel(ref Transform ___mouthGrip, ref AudioClip ___screamSFX, ref AudioClip ___breathingSFX, ref AudioClip ___killPlayerSFX)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Expected O, but got Unknown
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
GameObject val = (GameObject)thumpertankbundle.LoadAsset("Assets/thomas/ThomasModel.prefab");
Transform root = ___mouthGrip.root;
Transform val2 = ___mouthGrip.root.Find("MouthDogModel");
val2.Find("ToothDogBody").localScale = Vector3.zero;
val2.Find("ToothDogBodyLOD1").localScale = Vector3.zero;
val2.Find("AnimContainer").localScale = Vector3.zero;
GameObject val3 = Object.Instantiate<GameObject>(val, root.position, Quaternion.identity);
val3.GetComponent<Transform>().SetParent(val2);
val3.GetComponent<Transform>().localPosition = new Vector3(2.5f, -2f, 1.3f);
___screamSFX = thumpertankbundle.LoadAsset<AudioClip>("Assets/thomas/thomas-attack.mp3");
___breathingSFX = thumpertankbundle.LoadAsset<AudioClip>("Assets/thomas/thomas-whistle.mp3");
___killPlayerSFX = thumpertankbundle.LoadAsset<AudioClip>("Assets/thomas/thomas-kill-player.mp3");
Debug.Log((object)"[DogTheTrain]MouthDogModel model updated");
}
}
private const string MyGUID = "com.MamboDancer.DogTheTrain";
private const string PluginName = "DogTheTrain";
private const string VersionString = "1.0.0";
private static readonly Harmony Harmony = new Harmony("com.MamboDancer.DogTheTrain");
public static ManualLogSource Log = new ManualLogSource("DogTheTrain");
private static AssetBundle thumpertankbundle;
private void Awake()
{
Harmony.PatchAll();
((BaseUnityPlugin)this).Logger.LogInfo((object)"DogTheTrain ver.1.0.0 is barked!.");
Log = ((BaseUnityPlugin)this).Logger;
thumpertankbundle = AssetBundle.LoadFromFile(Paths.PluginPath + "/MamboDancer-DogTheTrain/dogthetankengineasset");
if ((Object)(object)thumpertankbundle == (Object)null)
{
Debug.Log((object)"DogTheTrainFailed to load Thomas assets(((!");
}
else
{
Debug.Log((object)"DogTheTrainThomas assets loaded successfully!");
}
}
private void Update()
{
}
}
}
namespace ThumperTheTrain.MonoBehaviours
{
internal class ThumperTheTrainComponent : MonoBehaviour
{
public void Awake()
{
}
public void Start()
{
}
public void Update()
{
}
public void LateUpdate()
{
}
}
}