using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using Inventory;
using Terrain.Platforms.Population;
using Terrain.Platforms.Population.Construction.Storage;
using Terrain.Platforms.Population.Population_Soul;
using UnityEngine;
using Utilities;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace ManureBox;
public class ManureBoxConstruction : ConstructionStorage
{
private float _checkTimer;
public void Update()
{
_checkTimer -= TimeRef.DT;
if (_checkTimer >= 0f || ((PopulationObjectAbstract)this).Platform == null || ((PopulationObjectAbstract)this).Platform.GlobalData == null)
{
return;
}
_checkTimer = 5f;
PopulationSoul[] populationSoulWithID = ((PopulationObjectAbstract)this).Platform.GlobalData.GetPopulationSoulWithID((ID)110000);
foreach (PopulationSoul val in populationSoulWithID)
{
if (base.Container.CanAdd((ID)9000, 1))
{
base.Container.AddAndGetRemaining((ID)9000, 1);
}
if (val.Gameobject != null)
{
Object.Destroy((Object)(object)val.Gameobject);
}
if (val.PopulationObject != null)
{
Object.Destroy((Object)(object)((Component)val.PopulationObject).gameObject);
}
val.RemoveSoul();
}
base.StorageVisualRef.DisplayContainer(base.Container);
}
}
public class ManureBoxStorage : StorageVisual_Abstract
{
public GameObject emptyObj;
public GameObject partialFillObj;
public GameObject fullObj;
public override void DisplayContainer(ItemContainerV2 container)
{
((StorageVisual_Abstract)this).DisplayContainer(container);
bool flag = container.GetQuantity((ID)9000) == 0;
bool flag2 = !container.CanAdd((ID)9000, 1);
bool active = !flag && !flag2;
emptyObj.SetActive(flag);
fullObj.SetActive(flag2);
partialFillObj.SetActive(active);
}
}
[BepInPlugin("manurebox", "Manure Box", "0.1.0")]
public class Plugin : BaseUnityPlugin
{
}