Decompiled source of AutoFixStationByReciper v20231215.17.26

AutoFixStationByReciper.dll

Decompiled 11 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using ModCommon;
using Patch;
using UnityEngine;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("AutoFixStationByReciper")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AutoFixStationByReciper")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("019a4227-d4d6-47b2-a252-225f4588c948")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace AutoFixStationByReciper
{
	[BepInPlugin("ZHYB.DSP.MOD.AutoFixStationByReciper", "ZHYB.DSP.MOD.AutoFixStationByReciper", "2023.12.15.001")]
	[BepInProcess("DSPGAME.exe")]
	public class AutoFixStationByReciper : BaseUnityPlugin
	{
		public const string Plugin_GUID = "ZHYB.DSP.MOD.AutoFixStationByReciper";

		public const string Plugin_NAME = "ZHYB.DSP.MOD.AutoFixStationByReciper";

		public const string Plugin_Process = "DSPGAME.exe";

		public const string Plugin_VERSION = "2023.12.15.001";

		public static PlanetFactory factory;

		private static readonly string SECTION = "配方配置物流塔";

		private static ConfigEntry<int> AutoPercent_Supply;

		private static ConfigEntry<int> AutoPercent_Demand;

		private Harmony harmony;

		public void Start()
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Expected O, but got Unknown
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Expected O, but got Unknown
			AutoPercent_Supply = ((BaseUnityPlugin)this).Config.Bind<int>(SECTION, "AutoPercent_Supply", 100, new ConfigDescription("根据配方配置物流塔格子,供应(产出物)提供的比例,比如每个格子最大20000,设置成10就是 10/100*20000=2000", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), Array.Empty<object>()));
			AutoPercent_Demand = ((BaseUnityPlugin)this).Config.Bind<int>(SECTION, "AutoPercent_Demand", 10, new ConfigDescription("根据配方配置物流塔格子,需求(原材料)产品提供的比例,比如每个格子最大20000,设置成10就是 10/100*20000=2000", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 100), Array.Empty<object>()));
			ModTranslate.Init();
			Patch_UIStationWindow.AutoPercent_Supply = AutoPercent_Supply.Value;
			Patch_UIStationWindow.AutoPercent_Demand = AutoPercent_Demand.Value;
			harmony = new Harmony("ZHYB.DSP.MOD.AutoFixStationByReciper");
			harmony.PatchAll();
		}

		public void Update()
		{
			if (GameMain.localPlanet != null)
			{
				factory = GameMain.localPlanet.factory;
			}
		}

		public void OnDestroy()
		{
			harmony.UnpatchSelf();
		}
	}
}
namespace Patch
{
	[HarmonyPatch(typeof(UIStationWindow))]
	internal class Patch_UIStationWindow
	{
		private struct CountItemResult
		{
			public int itemCount;

			public int resultCount;

			public ELogisticStorage GetlocalLogic()
			{
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0021: Unknown result type (might be due to invalid IL or missing references)
				return (ELogisticStorage)((itemCount == 0) ? 1 : ((itemCount <= resultCount) ? 1 : 2));
			}

			public ELogisticStorage GetRemoteLogic()
			{
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0021: Unknown result type (might be due to invalid IL or missing references)
				return (ELogisticStorage)((itemCount == 0) ? 1 : ((itemCount <= resultCount) ? 1 : 2));
			}
		}

		private static UIButton btnSelectReciper;

		private static UIStationWindow stationWindow;

		private static StationComponent stationComponent;

		private static PlanetFactory factory;

		private static readonly Dictionary<int, CountItemResult> countItemResults = new Dictionary<int, CountItemResult>();

		public static int AutoPercent_Supply = 100;

		public static int AutoPercent_Demand = 100;

		[HarmonyPostfix]
		[HarmonyPatch("_OnInit")]
		public static void Patch_OnInit()
		{
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			stationWindow = UIRoot.instance.uiGame.stationWindow;
			btnSelectReciper = Util.MakeSmallTextButton("选择配方", 100f);
			if ((Object)(object)btnSelectReciper != (Object)null)
			{
				((Object)((Component)btnSelectReciper).gameObject).name = "ZHYB-DSP-MOD-Plugin-ShowReciper-btn";
				RectTransform val = Util.NormalizeRectD(((Component)btnSelectReciper).gameObject);
				((Transform)val).SetParent((Transform)(object)stationWindow.windowTrans, false);
				val.anchoredPosition = Vector2.op_Implicit(new Vector3(400f, -60f));
				btnSelectReciper.highlighted = true;
				btnSelectReciper.onClick += OnReciperSelectButtonClick;
				btnSelectReciper.tips.type = (ItemTipType)1;
				btnSelectReciper.tips.tipTitle = "ShowReciper";
				btnSelectReciper.tips.tipText = "Auto fix Station By Reciper";
				btnSelectReciper.tips.corner = 8;
				btnSelectReciper.tips.offset = new Vector2(0f, 8f);
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch("_OnOpen")]
		public static void Patch_OnOpen()
		{
			factory = GameMain.localPlanet.factory;
			stationComponent = factory.transport.stationPool[stationWindow.stationId];
			((Component)btnSelectReciper).gameObject.SetActive(!stationComponent.isVeinCollector);
		}

		private static void OnRecipePickerReturn(RecipeProto recipeProto)
		{
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Invalid comparison between Unknown and I4
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			if (recipeProto == null || stationComponent == null)
			{
				return;
			}
			int num = GetStationItemMax();
			SlotData[] array = (SlotData[])(object)new SlotData[stationComponent.slots.Length];
			Array.Copy(stationComponent.slots, array, array.Length);
			for (int i = 0; i < stationComponent.storage.Length; i++)
			{
				factory.transport.SetStationStorage(stationComponent.id, i, 0, 100, (ELogisticStorage)2, (ELogisticStorage)0, GameMain.mainPlayer);
			}
			RefreshCountItemResult(recipeProto);
			int num2 = 0;
			foreach (KeyValuePair<int, CountItemResult> countItemResult in countItemResults)
			{
				factory.transport.SetStationStorage(stationComponent.id, num2++, countItemResult.Key, ((int)countItemResult.Value.GetRemoteLogic() == 2) ? (num / 100 * AutoPercent_Demand) : (num / 100 * AutoPercent_Supply), countItemResult.Value.GetlocalLogic(), countItemResult.Value.GetRemoteLogic(), GameMain.mainPlayer);
			}
			Array.Copy(array, stationComponent.slots, array.Length);
			if (stationComponent.isStellar && (stationComponent.storage[stationComponent.storage.Length - 1].itemId == 1210 || stationComponent.storage[stationComponent.storage.Length - 1].itemId == 0))
			{
				factory.transport.SetStationStorage(stationComponent.id, stationComponent.storage.Length - 1, 1210, 100, (ELogisticStorage)2, (ELogisticStorage)0, GameMain.mainPlayer);
			}
			static int GetStationItemMax()
			{
				int modelIndex = factory.entityPool[stationComponent.entityId].modelIndex;
				ModelProto val = ((ProtoSet<ModelProto>)(object)LDB.models).Select(modelIndex);
				int num3 = 0;
				if (val != null)
				{
					num3 = val.prefabDesc.stationMaxItemCount;
				}
				return num3 + (stationComponent.isCollector ? GameMain.history.localStationExtraStorage : (stationComponent.isVeinCollector ? GameMain.history.localStationExtraStorage : ((!stationComponent.isStellar) ? GameMain.history.localStationExtraStorage : GameMain.history.remoteStationExtraStorage)));
			}
		}

		private static void RefreshCountItemResult(RecipeProto recipeProto)
		{
			countItemResults.Clear();
			CountItemResult value;
			CountItemResult value2 = default(CountItemResult);
			for (int i = 0; i < recipeProto.Items.Count(); i++)
			{
				int key = recipeProto.Items[i];
				int itemCount = recipeProto.ItemCounts[i];
				if (countItemResults.TryGetValue(key, out value))
				{
					value2 = value;
					value2.itemCount = itemCount;
					countItemResults[key] = value2;
				}
				else
				{
					value2.itemCount = itemCount;
					value2.resultCount = 0;
					countItemResults.Add(key, value2);
				}
			}
			for (int i = 0; i < recipeProto.Results.Count(); i++)
			{
				int key2 = recipeProto.Results[i];
				int resultCount = recipeProto.ResultCounts[i];
				if (countItemResults.TryGetValue(key2, out value))
				{
					value2 = value;
					value2.resultCount = resultCount;
					countItemResults[key2] = value2;
				}
				else
				{
					value2.itemCount = 0;
					value2.resultCount = resultCount;
					countItemResults.Add(key2, value2);
				}
			}
		}

		private static void OnReciperSelectButtonClick(int obj)
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			if (UIRecipePicker.isOpened)
			{
				UIRecipePicker.Close();
			}
			else
			{
				UIRecipePicker.Popup(stationWindow.windowTrans.anchoredPosition + new Vector2(-300f, -135f), (Action<RecipeProto>)OnRecipePickerReturn, (ERecipeType)0);
			}
		}
	}
}
namespace ModCommon
{
	public static class ModCommon
	{
		public static ManualLogSource logger;

		public static PlanetFactory factory;

		public static void Log(string str)
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Expected O, but got Unknown
			if (logger == null)
			{
				logger = new ManualLogSource("ZHYB.DSP.MOD.ModCommon");
			}
			logger.LogMessage((object)str);
		}
	}
	public static class ItemIds
	{
		public const int IronOre = 1001;

		public const int CopperOre = 1002;

		public const int SiliconOre = 1003;

		public const int TitaniumOre = 1004;

		public const int Stone = 1005;

		public const int Coal = 1006;

		public const int Log = 1030;

		public const int PlantFuel = 1031;

		public const int FireIce = 1011;

		public const int KimberliteOre = 1012;

		public const int FractalSilicon = 1013;

		public const int OpticalGratingCrystal = 1014;

		public const int SpiniformStalagmiteCrystal = 1015;

		public const int UnipolarMagnet = 1016;

		public const int IronIngot = 1101;

		public const int CopperIngot = 1104;

		public const int High_puritySilicon = 1105;

		public const int TitaniumIngot = 1106;

		public const int StoneBrick = 1108;

		public const int EnergeticGraphite = 1109;

		public const int Steel = 1103;

		public const int TitaniumAlloy = 1107;

		public const int Glass = 1110;

		public const int TitaniumGlass = 1119;

		public const int Prism = 1111;

		public const int Diamond = 1112;

		public const int CrystalSilicon = 1113;

		public const int Gear = 1201;

		public const int Magnet = 1102;

		public const int MagneticCoil = 1202;

		public const int ElectricMotor = 1203;

		public const int ElectromagneticTurbine = 1204;

		public const int Super_magneticRing = 1205;

		public const int ParticleContainer = 1206;

		public const int StrangeMatter = 1127;

		public const int CircuitBoard = 1301;

		public const int Processor = 1303;

		public const int QuantumChip = 1305;

		public const int MicrocrystallineComponent = 1302;

		public const int PlaneFilter = 1304;

		public const int ParticleBroadband = 1402;

		public const int PlasmaExciter = 1401;

		public const int PhotonCombiner = 1404;

		public const int SolarSail = 1501;

		public const int Water = 1000;

		public const int CrudeOil = 1007;

		public const int RefinedOil = 1114;

		public const int SulfuricAcid = 1116;

		public const int Hydrogen = 1120;

		public const int Deuterium = 1121;

		public const int Antimatter = 1122;

		public const int CriticalPhoton = 1208;

		public const int HydrogenFuelRod = 1801;

		public const int DeuteronFuelRod = 1802;

		public const int AntimatterFuelRod = 1803;

		public const int Plastic = 1115;

		public const int Graphene = 1123;

		public const int CarbonNanotube = 1124;

		public const int OrganicCrystal = 1117;

		public const int TitaniumCrystal = 1118;

		public const int CasimirCrystal = 1126;

		public const int GravitonLens = 1209;

		public const int SpaceWarper = 1210;

		public const int AnnihilationConstraintSphere = 1403;

		public const int Thruster = 1405;

		public const int ReinforcedThruster = 1406;

		public const int LogisticsBot = 5003;

		public const int LogisticsDrone = 5001;

		public const int LogisticsVessel = 5002;

		public const int FrameMaterial = 1125;

		public const int DysonSphereComponent = 1502;

		public const int SmallCarrierRocket = 1503;

		public const int Foundation = 1131;

		public const int ProliferatorMk_I = 1141;

		public const int ProliferatorMk_II = 1142;

		public const int ProliferatorMk_III = 1143;

		public const int ConveyorBeltMK_I = 2001;

		public const int ConveyorBeltMK_II = 2002;

		public const int ConveyorBeltMK_III = 2003;

		public const int SorterMK_I = 2011;

		public const int SorterMK_II = 2012;

		public const int SorterMK_III = 2013;

		public const int Splitter = 2020;

		public const int AutomaticPiler = 2040;

		public const int TrafficMonitor = 2030;

		public const int SprayCoater = 2313;

		public const int LogisticsDistributor = 2107;

		public const int StorageMK_I = 2101;

		public const int StorageMK_II = 2102;

		public const int StorageTank = 2106;

		public const int AssemblingMachineMk_I = 2303;

		public const int AssemblingMachineMk_II = 2304;

		public const int AssemblingMachineMk_III = 2305;

		public const int TeslaTower = 2201;

		public const int WirelessPowerTower = 2202;

		public const int SatelliteSubstation = 2212;

		public const int WindTurbine = 2203;

		public const int ThermalPowerPlant = 2204;

		public const int MiniFusionPowerPlant = 2211;

		public const int GeothermalPowerStation = 2213;

		public const int MiningMachine = 2301;

		public const int AdvancedMiningMachine = 2316;

		public const int WaterPump = 2306;

		public const int ArcSmelter = 2302;

		public const int PlaneSmelter = 2315;

		public const int OilExtractor = 2307;

		public const int OilRefinery = 2308;

		public const int ChemicalPlant = 2309;

		public const int QuantumChemicalPlant = 2317;

		public const int Fractionator = 2314;

		public const int SolarPanel = 2205;

		public const int Accumulator = 2206;

		public const int Accumulator_full = 2207;

		public const int EM_RailEjector = 2311;

		public const int RayReceiver = 2208;

		public const int VerticalLaunchingSilo = 2312;

		public const int EnergyExchanger = 2209;

		public const int MiniatureParticleCollider = 2310;

		public const int ArtificialStar = 2210;

		public const int PlanetaryLogisticsStation = 2103;

		public const int InterstellarLogisticsStation = 2104;

		public const int OrbitalCollector = 2105;

		public const int MatrixLab = 2901;

		public const int ElectromagneticMatrix = 6001;

		public const int EnergyMatrix = 6002;

		public const int StructureMatrix = 6003;

		public const int InformationMatrix = 6004;

		public const int GravityMatrix = 6005;

		public const int UniverseMatrix = 6006;
	}
	public static class RecipesIds
	{
		public const int IronIngot = 1;

		public const int Magnet = 2;

		public const int CopperIngot = 3;

		public const int StoneBrick = 4;

		public const int Gear = 5;

		public const int MagneticCoil = 6;

		public const int WindTurbine = 7;

		public const int TeslaTower = 8;

		public const int ElectromagneticMatrix = 9;

		public const int MatrixLab = 10;

		public const int Prism = 11;

		public const int PlasmaExciter = 12;

		public const int WirelessPowerTower = 13;

		public const int OilExtractor = 14;

		public const int OilRefinery = 15;

		public const int PlasmaRefining = 16;

		public const int EnergeticGraphite = 17;

		public const int EnergyMatrix = 18;

		public const int HydrogenFuelRod = 19;

		public const int _Thruster = 20;

		public const int ReinforcedThruster = 21;

		public const int ChemicalPlant = 22;

		public const int Plastic = 23;

		public const int SulfuricAcid = 24;

		public const int OrganicCrystal = 25;

		public const int TitaniumCrystal = 26;

		public const int StructureMatrix = 27;

		public const int CasimirCrystal = 28;

		public const int CasimirCrystal_advanced = 29;

		public const int TitaniumGlass = 30;

		public const int Graphene = 31;

		public const int Graphene_advanced = 32;

		public const int CarbonNanotube = 33;

		public const int SiliconOre = 34;

		public const int CarbonNanotube_advanced = 35;

		public const int ParticleBroadband = 36;

		public const int CrystalSilicon = 37;

		public const int PlaneFilter = 38;

		public const int MiniatureParticleCollider = 39;

		public const int Deuterium = 40;

		public const int DeuteronFuelRod = 41;

		public const int AnnihilationConstraintSphere = 42;

		public const int ArtificialStar = 43;

		public const int AntimatterFuelRod = 44;

		public const int AssemblingMachineMk_I = 45;

		public const int AssemblingMachineMk_II = 46;

		public const int AssemblingMachineMk_III = 47;

		public const int MiningMachine = 48;

		public const int WaterPump = 49;

		public const int CircuitBoard = 50;

		public const int Processor = 51;

		public const int QuantumChip = 52;

		public const int MicrocrystallineComponent = 53;

		public const int OrganicCrystal_original = 54;

		public const int InformationMatrix = 55;

		public const int ArcSmelter = 56;

		public const int Glass = 57;

		public const int X_rayCracking = 58;

		public const int High_puritySilicon = 59;

		public const int Diamond = 60;

		public const int Diamond_advanced = 61;

		public const int CrystalSilicon_advanced = 62;

		public const int Steel = 63;

		public const int ThermalPowerPlant = 64;

		public const int TitaniumIngot = 65;

		public const int TitaniumAlloy = 66;

		public const int SolarPanel = 67;

		public const int PhotonCombiner = 68;

		public const int PhotonCombiner_advanced = 69;

		public const int SolarSail = 70;

		public const int EM_RailEjector = 71;

		public const int RayReceiver = 72;

		public const int SatelliteSubstation = 73;

		public const int Mass_energyStorage = 74;

		public const int UniverseMatrix = 75;

		public const int Accumulator = 76;

		public const int EnergyExchanger = 77;

		public const int SpaceWarper = 78;

		public const int SpaceWarper_advanced = 79;

		public const int FrameMaterial = 80;

		public const int DysonSphereComponent = 81;

		public const int VerticalLaunchingSilo = 82;

		public const int SmallCarrierRocket = 83;

		public const int ConveyorBeltMK_I = 84;

		public const int SorterMK_I = 85;

		public const int StorageMK_I = 86;

		public const int Splitter = 87;

		public const int SorterMK_II = 88;

		public const int ConveyorBeltMK_II = 89;

		public const int SorterMK_III = 90;

		public const int StorageMK_II = 91;

		public const int ConveyorBeltMK_III = 92;

		public const int PlanetaryLogisticsStation = 93;

		public const int LogisticsDrone = 94;

		public const int InterstellarLogisticsStation = 95;

		public const int LogisticsVessel = 96;

		public const int ElectricMotor = 97;

		public const int ElectromagneticTurbine = 98;

		public const int ParticleContainer = 99;

		public const int ParticleContainer_advanced = 100;

		public const int GravitonLens = 101;

		public const int GravityMatrix = 102;

		public const int Super_magneticRing = 103;

		public const int StrangeMatter = 104;

		public const int ProliferatorMk_I = 106;

		public const int ProliferatorMk_II = 107;

		public const int ProliferatorMk_III = 108;

		public const int SprayCoater = 109;

		public const int Fractionator = 110;

		public const int OrbitalCollector = 111;

		public const int Foundation = 112;

		public const int MiniFusionPowerPlant = 113;

		public const int StorageTank = 114;

		public const int DeuteriumFractionation = 115;

		public const int PlaneSmelter = 116;

		public const int TrafficMonitor = 117;

		public const int GeothermalPowerStation = 118;

		public const int AdvancedMiningMachine = 119;

		public const int AutomaticPiler = 120;

		public const int ReformingRefine = 121;

		public const int LogisticsDistributor = 122;

		public const int LogisticsBot = 123;

		public const int QuantumChemicalPlant = 124;
	}
	public static class TechsIds
	{
		public const int Dysonsphereprogram0 = 1;

		public const int Electromagnetism0 = 1001;

		public const int Electromagneticmatrix0 = 1002;

		public const int High_efficiencyplasmacontrol0 = 1101;

		public const int Plasmaextractrefining0 = 1102;

		public const int X_raycracking0 = 1103;

		public const int Reformingrefine0 = 1104;

		public const int Energymatrix0 = 1111;

		public const int Hydrogenfuelrod0 = 1112;

		public const int Thruster0 = 1113;

		public const int Reinforcedthruster0 = 1114;

		public const int Fluidstorageencapsulation0 = 1120;

		public const int Basicchemicalengineering0 = 1121;

		public const int Polymerchemicalengineering0 = 1122;

		public const int High_strengthcrystal0 = 1123;

		public const int Structurematrix0 = 1124;

		public const int Casimircrystal0 = 1125;

		public const int High_strengthglass0 = 1126;

		public const int Appliedsuperconductor0 = 1131;

		public const int High_strengthmaterial0 = 1132;

		public const int Particlecontroltechnology0 = 1133;

		public const int Deuteriumfractionation0 = 1134;

		public const int Wavefunctioninterference0 = 1141;

		public const int Miniatureparticlecollider0 = 1142;

		public const int Strangematter0 = 1143;

		public const int Artificialstar0 = 1144;

		public const int Controlledannihilationreaction0 = 1145;

		public const int ProliferatorMk_I0 = 1151;

		public const int ProliferatorMk_II0 = 1152;

		public const int ProliferatorMk_III0 = 1153;

		public const int Basicassemblingprocesses0 = 1201;

		public const int High_speedassemblingprocesses0 = 1202;

		public const int Quantumprintingtechnology0 = 1203;

		public const int Processor0 = 1302;

		public const int Quantumchip0 = 1303;

		public const int Photonspotlightminingtechnology0 = 1304;

		public const int Mesoscopicquantumentanglement0 = 1305;

		public const int Semiconductormaterial0 = 1311;

		public const int Informationmatrix0 = 1312;

		public const int Automaticmetallurgy0 = 1401;

		public const int Smeltingpurification0 = 1402;

		public const int Crystalsmelting0 = 1403;

		public const int Steelsmelting0 = 1411;

		public const int Thermalpower0 = 1412;

		public const int Titaniumsmelting0 = 1413;

		public const int High_strengthtitaniumalloy0 = 1414;

		public const int Environmentmodification0 = 1415;

		public const int Minifusionpowergeneration0 = 1416;

		public const int Plane_FilterSmeltingTechnology0 = 1417;

		public const int Solarcollection0 = 1501;

		public const int Photonfrequencyconversion0 = 1502;

		public const int Solarsailorbitsystem0 = 1503;

		public const int Rayreceiver0 = 1504;

		public const int Planetaryionosphereutilization0 = 1505;

		public const int Diracinversionmechanism0 = 1506;

		public const int Universematrix0 = 1507;

		public const int Missioncompleted0 = 1508;

		public const int Energystorage0 = 1511;

		public const int Interstellarpowertransmission0 = 1512;

		public const int Geothermalextraction0 = 1513;

		public const int High_strengthlightweightstructure0 = 1521;

		public const int Verticallaunchingsilo0 = 1522;

		public const int Dysonspherestresssystem1 = 1523;

		public const int Basiclogisticssystem0 = 1601;

		public const int Improvedlogisticssystem0 = 1602;

		public const int High_efficiencylogisticssystem0 = 1603;

		public const int Planetarylogisticssystem0 = 1604;

		public const int Interstellarlogisticssystem0 = 1605;

		public const int Gasgiantsexploitation0 = 1606;

		public const int Integratedlogisticssystem0 = 1607;

		public const int Distributionlogisticssystem0 = 1608;

		public const int Electromagneticdrive0 = 1701;

		public const int Magneticlevitationtechnology0 = 1702;

		public const int Magneticparticletrap0 = 1703;

		public const int Gravitationalwaverefraction0 = 1704;

		public const int Gravitymatrix0 = 1705;

		public const int Supermagneticfieldgenerator0 = 1711;

		public const int Satellitepowerdistributionsystem0 = 1712;

		public const int Mechacore1 = 2101;

		public const int Mechacore2 = 2102;

		public const int Mechacore3 = 2103;

		public const int Mechacore4 = 2104;

		public const int Mechacore5 = 2105;

		public const int Mechacore6 = 2106;

		public const int Mechanicalframe1 = 2201;

		public const int Mechanicalframe2 = 2202;

		public const int Mechanicalframe3 = 2203;

		public const int Mechanicalframe4 = 2204;

		public const int Mechanicalframe5 = 2205;

		public const int Mechanicalframe6 = 2206;

		public const int Mechanicalframe7 = 2207;

		public const int Mechanicalframe8 = 2208;

		public const int Inventorycapacity1 = 2301;

		public const int Inventorycapacity2 = 2302;

		public const int Inventorycapacity3 = 2303;

		public const int Inventorycapacity4 = 2304;

		public const int Inventorycapacity5 = 2305;

		public const int Inventorycapacity6 = 2306;

		public const int Communicationcontrol1 = 2401;

		public const int Communicationcontrol2 = 2402;

		public const int Communicationcontrol3 = 2403;

		public const int Communicationcontrol4 = 2404;

		public const int Communicationcontrol5 = 2405;

		public const int Communicationcontrol6 = 2406;

		public const int Communicationcontrol7 = 2407;

		public const int Energycircuit1 = 2501;

		public const int Energycircuit2 = 2502;

		public const int Energycircuit3 = 2503;

		public const int Energycircuit4 = 2504;

		public const int Energycircuit5 = 2505;

		public const int Energycircuit6 = 2506;

		public const int Droneengine1 = 2601;

		public const int Droneengine2 = 2602;

		public const int Droneengine3 = 2603;

		public const int Droneengine4 = 2604;

		public const int Droneengine5 = 2605;

		public const int Droneengine6 = 2606;

		public const int Massconstruction1 = 2701;

		public const int Massconstruction2 = 2702;

		public const int Massconstruction3 = 2703;

		public const int Massconstruction4 = 2704;

		public const int Massconstruction5 = 2705;

		public const int Driveengine1 = 2901;

		public const int Driveengine2 = 2902;

		public const int Driveengine3 = 2903;

		public const int Driveengine4 = 2904;

		public const int Driveengine5 = 2905;

		public const int Driveengine6 = 2906;

		public const int Solarsaillife1 = 3101;

		public const int Solarsaillife2 = 3102;

		public const int Solarsaillife3 = 3103;

		public const int Solarsaillife4 = 3104;

		public const int Solarsaillife5 = 3105;

		public const int Solarsaillife6 = 3106;

		public const int Raytransmissionefficiency1 = 3201;

		public const int Raytransmissionefficiency2 = 3202;

		public const int Raytransmissionefficiency3 = 3203;

		public const int Raytransmissionefficiency4 = 3204;

		public const int Raytransmissionefficiency5 = 3205;

		public const int Raytransmissionefficiency6 = 3206;

		public const int Raytransmissionefficiency7 = 3207;

		public const int Raytransmissionefficiency8 = 3208;

		public const int Sortercargostacking1 = 3301;

		public const int Sortercargostacking2 = 3302;

		public const int Sortercargostacking3 = 3303;

		public const int Sortercargostacking4 = 3304;

		public const int Sortercargostacking5 = 3305;

		public const int Distributionrange1 = 4001;

		public const int Distributionrange2 = 4002;

		public const int Distributionrange3 = 4003;

		public const int Distributionrange4 = 4004;

		public const int Distributionrange5 = 4005;

		public const int Logisticscarrierengine1 = 3401;

		public const int Logisticscarrierengine2 = 3402;

		public const int Logisticscarrierengine3 = 3403;

		public const int Logisticscarrierengine4 = 3404;

		public const int Logisticscarrierengine5 = 3405;

		public const int Logisticscarrierengine6 = 3406;

		public const int Logisticscarrierengine7 = 3407;

		public const int Logisticscarriercapacity1 = 3501;

		public const int Logisticscarriercapacity2 = 3502;

		public const int Logisticscarriercapacity3 = 3503;

		public const int Logisticscarriercapacity4 = 3504;

		public const int Logisticscarriercapacity5 = 3505;

		public const int Logisticscarriercapacity6 = 3506;

		public const int Logisticscarriercapacity7 = 3507;

		public const int Logisticscarriercapacity8 = 3508;

		public const int Logisticscarriercapacity9 = 3509;

		public const int Logisticscarriercapacity12 = 3510;

		public const int LogisticsStationintegratedlogistics1 = 3801;

		public const int LogisticsStationintegratedlogistics2 = 3802;

		public const int LogisticsStationintegratedlogistics3 = 3803;

		public const int Veinsutilization1 = 3601;

		public const int Veinsutilization2 = 3602;

		public const int Veinsutilization3 = 3603;

		public const int Veinsutilization4 = 3604;

		public const int Veinsutilization5 = 3605;

		public const int Veinsutilization6 = 3606;

		public const int Verticalconstruction1 = 3701;

		public const int Verticalconstruction2 = 3702;

		public const int Verticalconstruction3 = 3703;

		public const int Verticalconstruction4 = 3704;

		public const int Verticalconstruction5 = 3705;

		public const int Verticalconstruction6 = 3706;

		public const int Researchspeed1 = 3901;

		public const int Researchspeed2 = 3902;

		public const int Researchspeed3 = 3903;

		public const int Researchspeed4 = 3904;

		public const int Universeexploration1 = 4101;

		public const int Universeexploration2 = 4102;

		public const int Universeexploration3 = 4103;

		public const int Universeexploration4 = 4104;
	}
	public static class ModTranslate
	{
		public static void Init()
		{
		}
	}
	public static class Util
	{
		internal static Sprite _astroIndicatorIcon;

		public static Sprite astroIndicatorIcon
		{
			get
			{
				if ((Object)(object)_astroIndicatorIcon == (Object)null)
				{
					UIStarmap starmap = UIRoot.instance.uiGame.starmap;
					Transform obj = ((Component)starmap.cursorFunctionButton3).transform.Find("icon");
					object obj2;
					if (obj == null)
					{
						obj2 = null;
					}
					else
					{
						Image component = ((Component)obj).GetComponent<Image>();
						obj2 = ((component != null) ? component.sprite : null);
					}
					_astroIndicatorIcon = (Sprite)obj2;
				}
				return _astroIndicatorIcon;
			}
		}

		public static Color DSPBlue => new Color(0.3821f, 0.8455f, 1f, 0.68f);

		public static Color DSPOrange => new Color(0.9906f, 0.5897f, 0.3691f, 0.68f);

		public static T CreateGameObject<T>(string name, float width = 0f, float height = 0f) where T : Component
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = new GameObject(name);
			RectTransform val2 = val.AddComponent<RectTransform>();
			((Transform)val2).localScale = Vector3.one;
			if (width > 0f || height > 0f)
			{
				val2.sizeDelta = new Vector2(width, height);
			}
			return val.AddComponent<T>();
		}

		public static UIListView CreateListView(Action<UIData> dataFunc, string goName = "", Transform parent = null, float vsWidth = 10f)
		{
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			UIListView entryList = UIRoot.instance.uiGame.tutorialWindow.entryList;
			GameObject val = Object.Instantiate<GameObject>(((Component)entryList).gameObject);
			if ((Object)(object)parent != (Object)null)
			{
				val.transform.SetParent(parent, false);
			}
			if (!string.IsNullOrEmpty(goName))
			{
				((Object)val).name = goName;
			}
			UIListView component = val.GetComponent<UIListView>();
			if (dataFunc != null)
			{
				Transform transform = ((Component)component.m_ItemRes).gameObject.transform;
				RectTransform val2 = (RectTransform)(object)((transform is RectTransform) ? transform : null);
				for (int num = ((Transform)val2).childCount - 1; num >= 0; num--)
				{
					Object.Destroy((Object)(object)((Component)((Transform)val2).GetChild(num)).gameObject);
				}
				((Transform)val2).DetachChildren();
				Object.Destroy((Object)(object)((Component)val2).GetComponent<UITutorialListEntry>());
				dataFunc(component.m_ItemRes);
				component.RowHeight = (int)val2.sizeDelta.y;
				component.m_ItemRes.sel_highlight = null;
				component.m_ContentPanel.constraint = (Constraint)1;
				component.m_ContentPanel.constraintCount = 1;
				component.ColumnWidth = (int)val2.sizeDelta.x;
				component.RowHeight = (int)val2.sizeDelta.y;
			}
			component.HorzScroll = false;
			component.VertScroll = true;
			component.CullOutsideItems = false;
			component.ColumnSpacing = 0;
			component.RowSpacing = 4;
			Image component2 = ((Component)component.m_ScrollRect.verticalScrollbar).GetComponent<Image>();
			if ((Object)(object)component2 != (Object)null)
			{
				((Graphic)component2).color = new Color(0f, 0f, 0f, 0.62f);
			}
			Transform transform2 = ((Component)component.m_ScrollRect.verticalScrollbar).transform;
			RectTransform val3 = (RectTransform)(object)((transform2 is RectTransform) ? transform2 : null);
			val3.sizeDelta = new Vector2(vsWidth, val3.sizeDelta.y);
			return component;
		}

		public static Text CreateText(string label, int fontSize = 14, string objectName = "text")
		{
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			Text stateText = UIRoot.instance.uiGame.assemblerWindow.stateText;
			Text val = Object.Instantiate<Text>(stateText);
			((Object)((Component)val).gameObject).name = objectName;
			val.text = label;
			((Graphic)val).color = new Color(1f, 1f, 1f, 0.4f);
			val.alignment = (TextAnchor)3;
			val.fontSize = fontSize;
			return val;
		}

		public static string GetCommandValue(string str, string cmd, bool ignoreCase = false)
		{
			if (string.IsNullOrEmpty(str) || string.IsNullOrEmpty(cmd))
			{
				return "";
			}
			StringComparison comparisonType = StringComparison.Ordinal;
			if (ignoreCase)
			{
				comparisonType = StringComparison.OrdinalIgnoreCase;
			}
			string text = "[" + cmd + ":";
			int num = str.IndexOf(text, comparisonType);
			if (num >= 0)
			{
				num += text.Length;
				int num2 = str.IndexOf("]", num);
				if (num2 > 0)
				{
					return str.Substring(num, num2 - num).Trim();
				}
			}
			return "";
		}

		public static string KMGFormat(long num)
		{
			if (num >= 100000000000000L)
			{
				return (num / 1000000000000L).ToString("#,0T");
			}
			if (num >= 10000000000000L)
			{
				return (num / 1000000000000L).ToString("0.#") + "T";
			}
			if (num >= 100000000000L)
			{
				return (num / 1000000000).ToString("#,0G");
			}
			if (num >= 10000000000L)
			{
				return (num / 1000000000).ToString("0.#") + "G";
			}
			if (num >= 100000000)
			{
				return (num / 1000000).ToString("#,0M");
			}
			if (num >= 10000000)
			{
				return (num / 1000000).ToString("0.#") + "M";
			}
			if (num >= 100000)
			{
				return (num / 1000).ToString("#,0K");
			}
			if (num >= 10000)
			{
				return (num / 1000).ToString("0.#") + "K";
			}
			return num.ToString("#,0");
		}

		public static Sprite LoadSpriteResource(string path)
		{
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			Sprite val = Resources.Load<Sprite>(path);
			if ((Object)(object)val != (Object)null)
			{
				return val;
			}
			Texture2D val2 = Resources.Load<Texture2D>(path);
			if ((Object)(object)val2 != (Object)null)
			{
				return Sprite.Create(val2, new Rect(0f, 0f, (float)((Texture)val2).width, (float)((Texture)val2).height), new Vector2(0.5f, 0.5f));
			}
			return null;
		}

		public static T MakeGameObject<T>(Transform parent, GameObject src, float posX = 0f, float posY = 0f, float width = 0f, float height = 0f, bool right = false, bool bottom = false)
		{
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Expected O, but got Unknown
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)src == (Object)null)
			{
				return default(T);
			}
			GameObject val = Object.Instantiate<GameObject>(src);
			if ((Object)(object)val == (Object)null)
			{
				return default(T);
			}
			RectTransform val2 = (RectTransform)val.transform;
			if ((Object)(object)val2 != (Object)null)
			{
				float num = ((!bottom) ? 1 : 0);
				float num2 = (right ? 1 : 0);
				val2.anchorMax = new Vector2(num2, num);
				val2.anchorMin = new Vector2(num2, num);
				val2.pivot = new Vector2(0f, 0f);
				if (width == -1f)
				{
					width = val2.sizeDelta.x;
				}
				if (height == -1f)
				{
					height = val2.sizeDelta.y;
				}
				if (width > 0f && height > 0f)
				{
					val2.sizeDelta = new Vector2(width, height);
				}
				((Transform)val2).SetParent(parent, false);
				val2.anchoredPosition = new Vector2(posX, posY);
			}
			return val.GetComponent<T>();
		}

		public static UIButton MakeIconButton(Transform parent, Sprite sprite, float posX = 0f, float posY = 0f, bool right = false, bool bottom = false)
		{
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			GameObject gameObject = ((Component)UIRoot.instance.uiGame.researchQueue.pauseButton).gameObject;
			if ((Object)(object)gameObject == (Object)null)
			{
				return null;
			}
			UIButton val = MakeGameObject<UIButton>(parent, gameObject, posX, posY, 0f, 0f, right, bottom);
			if ((Object)(object)val == (Object)null)
			{
				return null;
			}
			Transform val2 = ((Component)val).gameObject.transform.Find("bg");
			if ((Object)(object)val2 != (Object)null)
			{
				((Component)val2).gameObject.SetActive(false);
			}
			Transform val3 = ((Component)val).gameObject.transform.Find("sd");
			if ((Object)(object)val3 != (Object)null)
			{
				((Component)val3).gameObject.SetActive(false);
			}
			Transform val4 = ((Component)val).gameObject.transform.Find("icon");
			if ((Object)(object)sprite != (Object)null && (Object)(object)val4 != (Object)null)
			{
				Image component = ((Component)val4).GetComponent<Image>();
				if ((Object)(object)component != (Object)null)
				{
					component.sprite = sprite;
					((Graphic)component).color = new Color(0.94f, 0.74f, 0.24f, 0.6f);
				}
				val4.localScale = new Vector3(1.6f, 1.6f, 1.6f);
			}
			((Component)val).gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 0.28f);
			val.tips.offset = new Vector2(0f, -10f);
			val.tips.corner = 0;
			val.tips.delay = 0.5f;
			val.tips.tipText = "";
			val.tips.tipTitle = "";
			return val;
		}

		public static UIButton MakeIconButtonB(Sprite sprite, float size = 60f)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = Object.Instantiate<GameObject>(((Component)UIRoot.instance.uiGame.researchQueue.pauseButton).gameObject);
			UIButton component = val.GetComponent<UIButton>();
			RectTransform val2 = (RectTransform)val.transform;
			float num = size / 60f;
			((Transform)val2).localScale = new Vector3(num, num, num);
			Transform obj = val.transform.Find("icon");
			Image val3 = ((obj != null) ? ((Component)obj).GetComponent<Image>() : null);
			if ((Object)(object)val3 != (Object)null)
			{
				val3.sprite = sprite;
			}
			component.tips.tipText = "";
			component.tips.tipTitle = "";
			return component;
		}

		public static UIButton MakeIconButtonC(Sprite sprite, float size = 30f)
		{
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			UIButton northButton = UIRoot.instance.uiGame.starmap.northButton;
			object obj;
			if (northButton == null)
			{
				obj = null;
			}
			else
			{
				Transform obj2 = ((Component)northButton).transform.parent.Find("tip");
				obj = ((obj2 != null) ? ((Component)obj2).gameObject : null);
			}
			GameObject val = (GameObject)obj;
			GameObject val2 = Object.Instantiate<GameObject>(val);
			RemovePersistentCalls(val2);
			UIButton component = val2.GetComponent<UIButton>();
			RectTransform val3 = (RectTransform)val2.transform;
			for (int num = ((Transform)val3).childCount - 1; num >= 0; num--)
			{
				Object.Destroy((Object)(object)((Component)((Transform)val3).GetChild(num)).gameObject);
			}
			((Transform)val3).DetachChildren();
			if (size > 0f)
			{
				val3.sizeDelta = new Vector2(size, size);
			}
			Image component2 = val2.GetComponent<Image>();
			if ((Object)(object)component2 != (Object)null)
			{
				component2.sprite = sprite;
			}
			component.tips.tipText = "";
			component.tips.tipTitle = "";
			component.tips.delay = 0.6f;
			if (component.transitions != null && component.transitions.Length != 0)
			{
				component.transitions = (Transition[])(object)new Transition[1] { component.transitions[0] };
			}
			return component;
		}

		public static UIButton MakeSmallTextButton(string label = "", float width = 0f, float height = 0f)
		{
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Expected O, but got Unknown
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			UIAssemblerWindow assemblerWindow = UIRoot.instance.uiGame.assemblerWindow;
			GameObject val = Object.Instantiate<GameObject>(((Component)assemblerWindow.copyButton).gameObject);
			UIButton component = val.GetComponent<UIButton>();
			Transform val2 = val.transform.Find("Text");
			Object.DestroyImmediate((Object)(object)((Component)val2).GetComponent<Localizer>());
			Text component2 = ((Component)val2).GetComponent<Text>();
			component2.text = label;
			component.tips.tipText = "";
			component.tips.tipTitle = "";
			if (width > 0f || height > 0f)
			{
				RectTransform val3 = (RectTransform)val.transform;
				if (width == 0f)
				{
					width = val3.sizeDelta.x;
				}
				if (height == 0f)
				{
					height = val3.sizeDelta.y;
				}
				val3.sizeDelta = new Vector2(width, height);
			}
			val.transform.localScale = Vector3.one;
			return component;
		}

		public static RectTransform NormalizeRect(GameObject go, float width = 0f, float height = 0f)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			RectTransform val = (RectTransform)go.transform;
			val.anchorMax = Vector2.zero;
			val.anchorMin = Vector2.zero;
			val.pivot = Vector2.zero;
			if (width > 0f && height > 0f)
			{
				val.sizeDelta = new Vector2(width, height);
			}
			return val;
		}

		public static RectTransform NormalizeRectB(GameObject go)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			RectTransform val = (RectTransform)go.transform;
			val.anchorMax = Vector2.one;
			val.anchorMin = Vector2.zero;
			val.pivot = new Vector2(0.5f, 0.5f);
			return val;
		}

		public static RectTransform NormalizeRectC(GameObject go, float width = 0f, float height = 0f)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			RectTransform val = (RectTransform)go.transform;
			val.anchorMax = new Vector2(0.5f, 0.5f);
			val.anchorMin = new Vector2(0.5f, 0.5f);
			val.pivot = new Vector2(0.5f, 0.5f);
			if (width > 0f && height > 0f)
			{
				val.sizeDelta = new Vector2(width, height);
			}
			return val;
		}

		public static RectTransform NormalizeRectD(GameObject go, float width = 0f, float height = 0f)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			RectTransform val = (RectTransform)go.transform;
			val.anchorMax = Vector2.up;
			val.anchorMin = Vector2.up;
			val.pivot = Vector2.up;
			if (width > 0f && height > 0f)
			{
				val.sizeDelta = new Vector2(width, height);
			}
			return val;
		}

		public static RectTransform NormalizeRectWithBottomLeft(Component cmp, float left, float bottom, Transform parent = null)
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = cmp.transform;
			RectTransform val = (RectTransform)(object)((transform is RectTransform) ? transform : null);
			if ((Object)(object)parent != (Object)null)
			{
				((Transform)val).SetParent(parent, false);
			}
			val.anchorMax = new Vector2(0f, 0f);
			val.anchorMin = new Vector2(0f, 0f);
			val.pivot = new Vector2(0f, 0f);
			val.anchoredPosition3D = new Vector3(left, bottom, 0f);
			return val;
		}

		public static RectTransform NormalizeRectWithMargin(Component cmp, float top, float left, float bottom, float right, Transform parent = null)
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = cmp.transform;
			RectTransform val = (RectTransform)(object)((transform is RectTransform) ? transform : null);
			if ((Object)(object)parent != (Object)null)
			{
				((Transform)val).SetParent(parent, false);
			}
			val.anchoredPosition3D = Vector3.zero;
			((Transform)val).localScale = Vector3.one;
			val.anchorMax = Vector2.one;
			val.anchorMin = Vector2.zero;
			val.pivot = new Vector2(0.5f, 0.5f);
			val.offsetMax = new Vector2(0f - right, 0f - top);
			val.offsetMin = new Vector2(left, bottom);
			return val;
		}

		public static RectTransform NormalizeRectWithTopLeft(Component cmp, float left, float top, Transform parent = null)
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = cmp.transform;
			RectTransform val = (RectTransform)(object)((transform is RectTransform) ? transform : null);
			if ((Object)(object)parent != (Object)null)
			{
				((Transform)val).SetParent(parent, false);
			}
			val.anchorMax = new Vector2(0f, 1f);
			val.anchorMin = new Vector2(0f, 1f);
			val.pivot = new Vector2(0f, 1f);
			val.anchoredPosition3D = new Vector3(left, 0f - top, 0f);
			return val;
		}

		public static void RemovePersistentCalls(GameObject go)
		{
			Button component = go.GetComponent<Button>();
			UIButton component2 = go.GetComponent<UIButton>();
			if ((Object)(object)component2 != (Object)null && (Object)(object)component != (Object)null)
			{
				Object.DestroyImmediate((Object)(object)component);
				component2.button = go.AddComponent<Button>();
			}
		}
	}
}