using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using HarmonyLib;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace InfiniteSoil;
[BepInPlugin("com.doubao.infinitesoil", "无限沙土 (Infinite Soil Pile)", "1.0.1")]
public class InfiniteSoilPlugin : BaseUnityPlugin
{
private const long MaxSandValue = 999999999L;
private static Harmony _harmony;
private void Awake()
{
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Expected O, but got Unknown
((BaseUnityPlugin)this).Logger.LogInfo((object)"========================================");
((BaseUnityPlugin)this).Logger.LogInfo((object)"无限沙土MOD v1.0.1 已加载!");
((BaseUnityPlugin)this).Logger.LogInfo((object)"支持游戏版本: 0.10.34.28529");
((BaseUnityPlugin)this).Logger.LogInfo((object)"========================================");
_harmony = new Harmony("com.doubao.infinitesoil");
_harmony.PatchAll(Assembly.GetExecutingAssembly());
((BaseUnityPlugin)this).Logger.LogInfo((object)"Harmony补丁已应用!");
}
private void Start()
{
((MonoBehaviour)this).InvokeRepeating("EnsureSand", 1f, 0.5f);
}
private void EnsureSand()
{
if (GameMain.mainPlayer != null)
{
GameMain.mainPlayer.SetSandCount(999999999L, (ESandSource)3);
}
}
private void OnDestroy()
{
if (_harmony != null)
{
_harmony.UnpatchSelf();
}
}
}
[HarmonyPatch(typeof(Player), "SetSandCount")]
public static class SetSandCountPatch
{
private const long MaxSandValue = 999999999L;
private static bool Prefix(Player __instance, ref long newSandCount, ESandSource sandSource)
{
newSandCount = 999999999L;
return true;
}
}
[HarmonyPatch(typeof(Player), "get_sandCount")]
public static class GetSandCountPatch
{
private const long MaxSandValue = 999999999L;
private static void Postfix(ref long __result)
{
__result = 999999999L;
}
}
[HarmonyPatch]
public static class GetNeedSandCountPatch
{
private static MethodBase TargetMethod()
{
return AccessTools.Method("BuildTool_Reform:GetNeedSandCountByInc", (Type[])null, (Type[])null);
}
private static void Postfix(ref int __result)
{
__result = 0;
}
}