Decompiled source of MoreMegaStructure v1.3.10

MoreMegaStructure.dll

Decompiled a month ago
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using Bottleneck;
using Bottleneck.Stats;
using CommonAPI;
using CommonAPI.Systems;
using CommonAPI.Systems.ModLocalization;
using HarmonyLib;
using NGPT;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;
using crecheng.DSPModSave;
using xiaoye97;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Water electrolysis")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Water electrolysis")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("7c9af07a-64ff-409f-b5bc-b78e172b5e36")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace MoreMegaStructure;

[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("Gnimaerd.DSP.plugin.MMSBottleneckCompat", "MMSBottleneckCompat", "1.0")]
public class MMSBottleneckCompat : BaseUnityPlugin
{
	private static readonly List<int> StarAssemblyIndex = new List<int>();

	public void Awake()
	{
		Harmony.CreateAndPatchAll(typeof(MMSBottleneckCompat), (string)null);
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(UIStatisticsWindow), "AstroBoxToValue")]
	public static bool AstroBoxToValuePrePatch(ref UIStatisticsWindow __instance)
	{
		if (!__instance.isStatisticsTab)
		{
			return true;
		}
		__instance.lastAstroFilter = __instance.astroFilter;
		if (__instance.astroBox.ItemsData.Count <= __instance.astroBox.itemIndex)
		{
			__instance.RefreshAll();
			return false;
		}
		return true;
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(BottleneckPlugin), "ProcessDeficitTask")]
	public static void BottleneckPostPatch(ref BottleneckPlugin __instance)
	{
		//IL_05bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c5: Expected O, but got Unknown
		//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c6: Expected O, but got Unknown
		//IL_0378: Unknown result type (might be due to invalid IL or missing references)
		//IL_067f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0689: Expected O, but got Unknown
		//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04bd: Expected O, but got Unknown
		//IL_0761: Unknown result type (might be due to invalid IL or missing references)
		//IL_076b: Expected O, but got Unknown
		if (GameMain.instance.timei % 60 == 0)
		{
			RefreshStarAssemblyIndex();
		}
		UIStatisticsWindow val = UIRoot.instance?.uiGame?.statWindow;
		if ((Object)(object)val == (Object)null)
		{
			return;
		}
		bool flag = false;
		bool flag2 = false;
		bool flag3 = false;
		int num = -1;
		int astroFilter = val.astroFilter;
		if (astroFilter == -1 || (astroFilter == 0 && GameMain.data.localStar == null))
		{
			flag = true;
			flag2 = true;
		}
		else if (astroFilter % 100 == 0)
		{
			int num2 = astroFilter / 100 - 1;
			if (num2 >= 0 && num2 < 1000 && MoreMegaStructure.StarMegaStructureType[num2] == 4)
			{
				flag2 = true;
				num = num2;
			}
		}
		else
		{
			int num3 = astroFilter / 100 - 1;
			int num4 = astroFilter % 100 - 1;
			if (num3 >= 0 && num3 < 1000 && num4 == GameMain.galaxy.stars[num3].planetCount)
			{
				flag2 = true;
				num = num3;
				flag3 = true;
			}
		}
		if (!flag2)
		{
			return;
		}
		foreach (int item in StarAssemblyIndex)
		{
			if (item != num && !flag)
			{
				continue;
			}
			if (GameMain.data == null || GameMain.data.dysonSpheres == null || GameMain.data.dysonSpheres.Length <= item)
			{
				break;
			}
			GameData data = GameMain.data;
			if (((data != null) ? data.dysonSpheres[item] : null) == null)
			{
				break;
			}
			GameData data2 = GameMain.data;
			int num5 = StarAssembly.CalcMaxSlotIndex((data2 != null) ? data2.dysonSpheres[item] : null);
			Dictionary<int, int> dictionary = new Dictionary<int, int>();
			Dictionary<int, int> dictionary2 = new Dictionary<int, int>();
			int num6 = 0;
			num6 = ResearchTechHelper.GetMaxIncIndex();
			for (int i = 1; i < num5; i++)
			{
				double consumeProduceSpeedRatio = StarAssembly.GetConsumeProduceSpeedRatio(item, i);
				for (int j = 0; j < StarAssembly.items[item][i].Count; j++)
				{
					int key = StarAssembly.items[item][i][j];
					dictionary[key] = 1;
					if (BetterStats.counter.ContainsKey(key))
					{
						if (flag3)
						{
							BetterStats.counter[key].consumption = (float)consumeProduceSpeedRatio * (float)StarAssembly.itemCounts[item][i][j] * 3600f;
							continue;
						}
						ProductMetrics obj = BetterStats.counter[key];
						obj.consumption += (float)consumeProduceSpeedRatio * (float)StarAssembly.itemCounts[item][i][j] * 3600f;
					}
					else
					{
						BetterStats.counter.Add(key, new ProductMetrics());
						BetterStats.counter[key].consumption = (float)consumeProduceSpeedRatio * (float)StarAssembly.itemCounts[item][i][j] * 3600f;
					}
				}
				for (int k = 0; k < StarAssembly.products[item][i].Count; k++)
				{
					int num7 = StarAssembly.products[item][i][k];
					dictionary2[num7] = 1;
					ItemCalculationRuntimeSetting val2 = (PluginConfig.disableProliferatorCalc.Value ? ItemCalculationRuntimeSetting.None : ItemCalculationRuntimeSetting.ForItemId(num7));
					int incLevel = (((int)val2.Mode != 0 && val2.Enabled) ? ResearchTechHelper.GetMaxIncIndex() : 0);
					if (StarAssembly.incProgress[item][i] < 0.0)
					{
						incLevel = ((StarAssembly.specBuffLevel.ContainsKey(item) && StarAssembly.specBuffLevel[item][i] > 0) ? ResearchTechHelper.GetMaxIncIndex() : 0);
					}
					double consumeProduceSpeedRatio2 = StarAssembly.GetConsumeProduceSpeedRatio(item, i);
					consumeProduceSpeedRatio2 += StarAssembly.GetIncProduceSpeedRatio(consumeProduceSpeedRatio2, item, i, incLevel);
					if (BetterStats.counter.ContainsKey(num7))
					{
						if (flag3)
						{
							BetterStats.counter[num7].production = (float)(consumeProduceSpeedRatio2 * (double)StarAssembly.productCounts[item][i][k] * 3600.0);
							continue;
						}
						ProductMetrics obj2 = BetterStats.counter[num7];
						obj2.production += (float)(consumeProduceSpeedRatio2 * (double)StarAssembly.productCounts[item][i][k] * 3600.0);
					}
					else
					{
						BetterStats.counter.Add(num7, new ProductMetrics());
						BetterStats.counter[num7].production = (float)(consumeProduceSpeedRatio2 * (double)StarAssembly.productCounts[item][i][k] * 3600.0);
					}
				}
			}
			double consumeProduceSpeedRatio3 = StarAssembly.GetConsumeProduceSpeedRatio(item, 0);
			if (BetterStats.counter.ContainsKey(9500))
			{
				if (flag3)
				{
					BetterStats.counter[9500].production = (float)(consumeProduceSpeedRatio3 * 3600.0);
				}
				else
				{
					ProductMetrics obj3 = BetterStats.counter[9500];
					obj3.production += (float)(consumeProduceSpeedRatio3 * 3600.0);
				}
			}
			else
			{
				BetterStats.counter.Add(9500, new ProductMetrics());
				BetterStats.counter[9500].production = (float)(consumeProduceSpeedRatio3 * 3600.0);
			}
			if (consumeProduceSpeedRatio3 > 0.0)
			{
				dictionary2[9500] = 1;
			}
			foreach (KeyValuePair<int, int> item2 in dictionary)
			{
				int key2 = item2.Key;
				if (BetterStats.counter.ContainsKey(key2))
				{
					if (flag3)
					{
						BetterStats.counter[key2].consumers = 1;
					}
					else
					{
						ProductMetrics obj4 = BetterStats.counter[key2];
						obj4.consumers++;
					}
				}
				else
				{
					BetterStats.counter.Add(key2, new ProductMetrics());
					BetterStats.counter[key2].consumers = 1;
				}
				__instance.AddPlanetaryUsage(key2, GameMain.galaxy.PlanetById((item + 1) * 100 + GameMain.galaxy.stars[item].planetCount + 1), 0, true);
			}
			foreach (KeyValuePair<int, int> item3 in dictionary2)
			{
				int key3 = item3.Key;
				if (BetterStats.counter.ContainsKey(key3))
				{
					if (flag3)
					{
						BetterStats.counter[key3].producers = 1;
					}
					else
					{
						ProductMetrics obj5 = BetterStats.counter[key3];
						obj5.producers++;
					}
				}
				else
				{
					BetterStats.counter.Add(key3, new ProductMetrics());
					BetterStats.counter[key3].producers = 1;
				}
				__instance.AddPlanetaryUsage(key3, GameMain.galaxy.PlanetById((item + 1) * 100 + GameMain.galaxy.stars[item].planetCount + 1), 0, false);
			}
		}
	}

	public static void RefreshStarAssemblyIndex()
	{
		StarAssemblyIndex.Clear();
		for (int i = 0; i < 1000; i++)
		{
			if (MoreMegaStructure.StarMegaStructureType[i] == 4)
			{
				StarAssemblyIndex.Add(i);
			}
		}
	}
}
public class MegaButtonGroupBehaviour
{
	private static bool cleared;

	private static float targetX;

	public static float currentX;

	public static void ShowSetMegaGroup()
	{
		targetX = 0f;
		if (UIRoot.instance?.uiGame?.dysonEditor?.selection != null && !cleared)
		{
			try
			{
				cleared = true;
				UIRoot.instance.uiGame.dysonEditor.selection.ClearAllSelection();
			}
			catch (Exception)
			{
			}
		}
	}

	public static void HideSetMegaGroup()
	{
		targetX = -270f;
		cleared = false;
	}

	public static void SetMegaGroupMove()
	{
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0014: 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_0024: 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_008b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_004b: 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_0057: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0117: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0131: Unknown result type (might be due to invalid IL or missing references)
		//IL_0137: Unknown result type (might be due to invalid IL or missing references)
		//IL_016e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0174: Unknown result type (might be due to invalid IL or missing references)
		//IL_017a: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0223: Unknown result type (might be due to invalid IL or missing references)
		bool flag = false;
		Transform transform = MoreMegaStructure.setMegaGroupObj.transform;
		Vector3 localPosition = transform.localPosition;
		if (MoreMegaStructure.NoUIAnimation.Value)
		{
			if (localPosition.x != targetX)
			{
				currentX = targetX;
				transform.localPosition = new Vector3(currentX, localPosition.y, localPosition.z);
				flag = true;
			}
		}
		else if (targetX > localPosition.x + 0.5f)
		{
			float num = targetX - localPosition.x;
			float num2 = Math.Max(num * 0.2f, 0.5f);
			currentX = localPosition.x + num2;
			transform.localPosition = new Vector3(currentX, localPosition.y, localPosition.z);
			flag = true;
		}
		else if (targetX < localPosition.x - 0.5f)
		{
			float num3 = targetX - localPosition.x;
			float num4 = Math.Min(num3 * 0.2f, -0.5f);
			currentX = localPosition.x + num4;
			transform.localPosition = new Vector3(currentX, localPosition.y, localPosition.z);
			flag = true;
		}
		else if (targetX != localPosition.x)
		{
			currentX = targetX;
			transform.localPosition = new Vector3(currentX, localPosition.y, localPosition.z);
			flag = true;
		}
		if (flag)
		{
			MoreMegaStructure.SetMegaStructureWarningText.text = Localization.Translate("鼠标触碰左侧黄条以规划巨构");
			float num5 = (-200f - currentX) * 1f / 70f;
			((Graphic)MoreMegaStructure.SetMegaStructureWarningText).color = new Color(1f, 1f, 0.57f, num5);
			float num6 = (0f - currentX) * 1f / 270f;
			if (num6 > 1f)
			{
				num6 = 1f;
			}
			MoreMegaStructure.LeftMegaBuildWarning.transform.localScale = new Vector3(num6, 1f, 1f);
		}
	}
}
internal static class MMSProtos
{
	public class StringProto
	{
		public string Name { get; set; }

		public string ZHCN { get; set; }

		public string ENUS { get; set; }

		public void RegisterTranslation()
		{
			LocalizationModule.RegisterTranslation(Name, ENUS, ZHCN, "");
		}
	}

	public static int StarCannonTechId = 1918;

	internal static void RefreshInitAll()
	{
		ItemProto.InitFluids();
		ItemProto.InitItemIds();
		ItemProto.InitFuelNeeds();
		ItemProto.InitItemIndices();
		ItemProto.InitMechaMaterials();
	}

	public static void ItemsDesc()
	{
	}

	internal static void AddNewItems()
	{
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0324: Unknown result type (might be due to invalid IL or missing references)
		//IL_0338: Unknown result type (might be due to invalid IL or missing references)
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0480: Unknown result type (might be due to invalid IL or missing references)
		//IL_061b: Unknown result type (might be due to invalid IL or missing references)
		//IL_062f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0766: Unknown result type (might be due to invalid IL or missing references)
		//IL_077a: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a23: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d77: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f13: Unknown result type (might be due to invalid IL or missing references)
		//IL_107a: Unknown result type (might be due to invalid IL or missing references)
		//IL_108e: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_120b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1372: Unknown result type (might be due to invalid IL or missing references)
		//IL_1386: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_14c9: Unknown result type (might be due to invalid IL or missing references)
		int num = MoreMegaStructure.pagenum * 1000;
		int num2 = 0;
		bool flag = true;
		num = MoreMegaStructure.pagenum * 1000 + 100;
		num2 = -100;
		RecipeProto val = ((ProtoSet<RecipeProto>)(object)LDB.recipes).Select(51);
		RecipeProto val2 = MethedEx.Copy<RecipeProto>(val);
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val2.Type = (ERecipeType)10;
		}
		ItemProto val3 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1303);
		int num3 = 0;
		if (MoreMegaStructure.GenesisCompatibility)
		{
			num3 = -200;
		}
		RecipeProto val4 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val5 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val4).ID = num3 + 530;
		((Proto)val4).Name = "引力发生装置";
		((Proto)val4).name = Localization.Translate("引力发生装置");
		val4.Description = "引力发生装置描述";
		val4.description = Localization.Translate("引力发生装置描述");
		val4.Items = new int[2] { 1107, 1127 };
		val4.ItemCounts = new int[2] { 1, 1 };
		val4.Results = new int[1] { 9480 };
		val4.ResultCounts = new int[1] { 1 };
		val4.TimeSpend = 180;
		val4.GridIndex = 101 + num + num2;
		val4.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1704);
		Traverse.Create((object)val4).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconGravityGen);
		ProtoRegistry.RegisterItem(9480, Localization.Translate("引力发生装置"), Localization.Translate("引力发生装置描述"), "Assets/MegaStructureTab/gravitygenerator", 101 + num + num2, 100, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.9f, 0.3f)));
		RecipeProto val6 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val7 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val6).ID = num3 + 531;
		((Proto)val6).Name = "位面约束环";
		((Proto)val6).name = Localization.Translate("位面约束环");
		val6.Description = "位面约束环描述";
		val6.description = Localization.Translate("位面约束环描述");
		val6.Items = new int[2] { 1205, 1304 };
		val6.ItemCounts = new int[2] { 2, 1 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val6.Items = new int[3] { 1205, 1119, 1126 };
			val6.ItemCounts = new int[3] { 2, 1, 1 };
		}
		val6.Results = new int[1] { 9481 };
		val6.ResultCounts = new int[1] { 2 };
		val6.TimeSpend = 180;
		val6.GridIndex = 102 + num + num2;
		val6.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1141);
		Traverse.Create((object)val6).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconConstrainRing);
		ProtoRegistry.RegisterItem(9481, Localization.Translate("位面约束环"), Localization.Translate("位面约束环描述"), "Assets/MegaStructureTab/constrainring", 102 + num + num2, 100, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.4f, 0.08f, 0.4f)));
		RecipeProto val8 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val9 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val8).ID = num3 + 532;
		((Proto)val8).Name = "引力钻头";
		((Proto)val8).name = Localization.Translate("引力钻头");
		val8.Description = "引力钻头描述";
		val8.description = Localization.Translate("引力钻头描述");
		val8.Items = new int[3] { 9480, 9481, 1209 };
		val8.ItemCounts = new int[3] { 1, 1, 1 };
		val8.Results = new int[1] { 9482 };
		val8.ResultCounts = new int[1] { 1 };
		val8.TimeSpend = 180;
		val8.GridIndex = 103 + num + num2;
		val8.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1704);
		Traverse.Create((object)val8).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconGravityDrill);
		ProtoRegistry.RegisterItem(9482, Localization.Translate("引力钻头"), Localization.Translate("引力钻头描述"), "Assets/MegaStructureTab/gravitydrill2", 103 + num + num2, 50, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.black, new Color(0.3f, 0.9f, 0.3f)));
		RecipeProto val10 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val11 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val10).ID = num3 + 533;
		((Proto)val10).Name = "隧穿激发装置";
		((Proto)val10).name = Localization.Translate("隧穿激发装置");
		val10.Description = "隧穿激发装置描述";
		val10.description = Localization.Translate("隧穿激发装置描述");
		val10.Items = new int[2] { 1206, 1404 };
		val10.ItemCounts = new int[2] { 1, 1 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val10.Items = new int[2] { 1303, 1014 };
			val10.ItemCounts = new int[2] { 1, 2 };
		}
		val10.Results = new int[1] { 9483 };
		val10.ResultCounts = new int[1] { 6 };
		val10.TimeSpend = 360;
		val10.GridIndex = 104 + num + num2;
		val10.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1703);
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val10.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1302);
		}
		Traverse.Create((object)val10).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconTunnExciter);
		ProtoRegistry.RegisterItem(9483, Localization.Translate("隧穿激发装置"), Localization.Translate("隧穿激发装置描述"), "Assets/MegaStructureTab/tunnelingexciter2", 104 + num + num2, 200, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.1f, 0f)));
		RecipeProto val12 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val13 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val12).ID = num3 + 534;
		((Proto)val12).Name = "谐振盘";
		((Proto)val12).name = Localization.Translate("谐振盘");
		val12.Description = "谐振盘描述";
		val12.description = Localization.Translate("谐振盘描述");
		val12.Items = new int[3] { 9483, 1113, 1305 };
		val12.ItemCounts = new int[3] { 3, 2, 1 };
		val12.Results = new int[1] { 9484 };
		val12.ResultCounts = new int[1] { 1 };
		val12.TimeSpend = 240;
		val12.GridIndex = 105 + num + num2;
		val12.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1303);
		Traverse.Create((object)val12).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconResDisc);
		ProtoRegistry.RegisterItem(9484, Localization.Translate("谐振盘"), Localization.Translate("谐振盘描述"), "Assets/MegaStructureTab/resonancedisc", 105 + num + num2, 200, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.gray, new Color(0.4f, 0.4f, 0.8f)));
		RecipeProto val14 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val15 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val14).ID = num3 + 535;
		((Proto)val14).Name = "光子探针";
		((Proto)val14).name = Localization.Translate("光子探针");
		val14.Description = "光子探针描述";
		val14.description = Localization.Translate("光子探针描述");
		val14.Items = new int[2] { 1404, 1208 };
		val14.ItemCounts = new int[2] { 2, 1 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val14.Items = new int[2] { 1014, 1208 };
			val14.ItemCounts = new int[2] { 4, 1 };
		}
		val14.Results = new int[1] { 9485 };
		val14.ResultCounts = new int[1] { 1 };
		val14.TimeSpend = 240;
		val14.GridIndex = 106 + num + num2;
		val14.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		Traverse.Create((object)val14).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconPhotonProbe);
		IconDesc defaultIconDesc = ProtoRegistry.GetDefaultIconDesc(Color.gray, new Color(0.6f, 0.6f, 0.9f));
		defaultIconDesc.solidAlpha = 0.1f;
		ProtoRegistry.RegisterItem(9485, Localization.Translate("光子探针"), Localization.Translate("光子探针描述"), "Assets/MegaStructureTab/photonprobeflipsmall", 106 + num + num2, 200, (EItemType)3, defaultIconDesc);
		RecipeProto val16 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val17 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val16).ID = num3 + 536;
		((Proto)val16).Name = "量子计算机";
		((Proto)val16).name = Localization.Translate("量子计算机");
		val16.Description = "量子计算机描述";
		val16.description = Localization.Translate("量子计算机描述");
		val16.Items = new int[3] { 1305, 1402, 9483 };
		val16.ItemCounts = new int[3] { 3, 2, 1 };
		val16.Results = new int[1] { 9486 };
		val16.ResultCounts = new int[1] { 1 };
		val16.TimeSpend = 720;
		val16.GridIndex = 107 + num + num2;
		val16.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1303);
		Traverse.Create((object)val16).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuanComp);
		IconDesc defaultIconDesc2 = ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0f, 0.7f, 1f));
		defaultIconDesc2.solidAlpha = 0f;
		ProtoRegistry.RegisterItem(9486, Localization.Translate("量子计算机"), Localization.Translate("量子计算机描述"), "Assets/MegaStructureTab/quantumcomputer3", 107 + num + num2, 200, (EItemType)3, defaultIconDesc2);
		RecipeProto val18 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val19 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val18).ID = num3 + 537;
		((Proto)val18).Name = "星际组装厂组件";
		((Proto)val18).name = Localization.Translate("星际组装厂组件");
		val18.Description = "星际组装厂组件描述";
		val18.description = Localization.Translate("星际组装厂组件描述");
		val18.Items = new int[3] { 1125, 2305, 1143 };
		val18.ItemCounts = new int[3] { 3, 3, 1 };
		val18.Results = new int[1] { 9487 };
		val18.ResultCounts = new int[1] { 1 };
		val18.TimeSpend = 480;
		val18.GridIndex = 108 + num + num2;
		val18.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1303);
		if (MoreMegaStructure.isBattleActive)
		{
			val18.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1922);
		}
		Traverse.Create((object)val18).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconIACompo);
		ProtoRegistry.RegisterItem(9487, Localization.Translate("星际组装厂组件"), Localization.Translate("星际组装厂组件描述"), "Assets/MegaStructureTab/iacomponent", 108 + num + num2, 200, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.7f, 0.2f, 0.7f)));
		RecipeProto val20 = ((ProtoSet<RecipeProto>)(object)LDB.recipes).Select(83);
		ItemProto val21 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1503);
		RecipeProto val22 = MethedEx.Copy<RecipeProto>(val20);
		ItemProto val23 = MethedEx.Copy<ItemProto>(val21);
		((Proto)val22).ID = num3 + 538;
		((Proto)val22).Name = "物质解压器运载火箭";
		((Proto)val22).name = Localization.Translate("物质解压器运载火箭");
		val22.Description = "物质解压器运载火箭描述";
		val22.description = Localization.Translate("物质解压器运载火箭描述");
		val22.Items = new int[3] { 9482, 9484, 1802 };
		val22.ItemCounts = new int[3] { 2, 1, 2 };
		val22.Results = new int[1] { 9488 };
		val22.ResultCounts = new int[1] { 1 };
		val22.TimeSpend = 480;
		val22.GridIndex = 201 + num;
		val22.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1522);
		if (MoreMegaStructure.isBattleActive)
		{
			val22.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		Traverse.Create((object)val22).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconRocketMattD);
		ProtoRegistry.RegisterItem(9488, Localization.Translate("物质解压器运载火箭"), Localization.Translate("物质解压器运载火箭描述"), "Assets/MegaStructureTab/rocketMatter", 201 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(new Color(1f, 0.9f, 0.9f), new Color(0.7f, 0.2f, 0.2f)));
		RecipeProto val24 = MethedEx.Copy<RecipeProto>(val20);
		ItemProto val25 = MethedEx.Copy<ItemProto>(val21);
		((Proto)val24).ID = num3 + 539;
		((Proto)val24).Name = "科学枢纽运载火箭";
		((Proto)val24).name = Localization.Translate("科学枢纽运载火箭");
		val24.Description = "科学枢纽运载火箭描述";
		val24.description = Localization.Translate("科学枢纽运载火箭描述");
		val24.Items = new int[3] { 9481, 9486, 1802 };
		val24.ItemCounts = new int[3] { 3, 1, 2 };
		val24.Results = new int[1] { 9489 };
		val24.ResultCounts = new int[1] { 1 };
		val24.TimeSpend = 480;
		val24.GridIndex = 202 + num;
		val24.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1508);
		if (MoreMegaStructure.isBattleActive)
		{
			val24.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1924);
		}
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val24.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1508);
		}
		Traverse.Create((object)val24).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconRocketScieN);
		ProtoRegistry.RegisterItem(9489, Localization.Translate("科学枢纽运载火箭"), Localization.Translate("科学枢纽运载火箭描述"), "Assets/MegaStructureTab/rocketScience", 202 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(new Color(1f, 1f, 0.9f), new Color(0.7f, 0.7f, 0.2f)));
		RecipeProto val26 = MethedEx.Copy<RecipeProto>(val20);
		ItemProto val27 = MethedEx.Copy<ItemProto>(val21);
		((Proto)val26).ID = num3 + 540;
		((Proto)val26).Name = "谐振发射器运载火箭";
		((Proto)val26).name = Localization.Translate("谐振发射器运载火箭");
		val26.Description = "谐振发射器运载火箭描述";
		val26.description = Localization.Translate("谐振发射器运载火箭描述");
		val26.Items = new int[3] { 9480, 9484, 1802 };
		val26.ItemCounts = new int[3] { 1, 4, 2 };
		val26.Results = new int[1] { 9490 };
		val26.ResultCounts = new int[1] { 1 };
		val26.TimeSpend = 480;
		val26.GridIndex = 203 + num;
		val26.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1522);
		if (MoreMegaStructure.isBattleActive)
		{
			val26.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1921);
		}
		Traverse.Create((object)val26).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconRocketWarpG);
		ProtoRegistry.RegisterItem(9490, Localization.Translate("谐振发射器运载火箭"), Localization.Translate("谐振发射器运载火箭描述"), "Assets/MegaStructureTab/rocketWarp", 203 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(new Color(0.9f, 1f, 0.9f), new Color(0.2f, 0.7f, 0.2f)));
		RecipeProto val28 = MethedEx.Copy<RecipeProto>(val20);
		ItemProto val29 = MethedEx.Copy<ItemProto>(val21);
		((Proto)val28).ID = num3 + 541;
		((Proto)val28).Name = "星际组装厂运载火箭";
		((Proto)val28).name = Localization.Translate("星际组装厂运载火箭");
		val28.Description = "星际组装厂运载火箭描述";
		val28.description = Localization.Translate("星际组装厂运载火箭描述");
		val28.Items = new int[2] { 9487, 1802 };
		val28.ItemCounts = new int[2] { 2, 2 };
		val28.Results = new int[1] { 9491 };
		val28.ResultCounts = new int[1] { 1 };
		val28.TimeSpend = 480;
		val28.GridIndex = 204 + num;
		val28.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1522);
		if (MoreMegaStructure.isBattleActive)
		{
			val28.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1922);
		}
		Traverse.Create((object)val28).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconRocketMegaA);
		ProtoRegistry.RegisterItem(9491, Localization.Translate("星际组装厂运载火箭"), Localization.Translate("星际组装厂运载火箭描述"), "Assets/MegaStructureTab/rocketAssembly", 204 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(new Color(0.9f, 0.9f, 1f), new Color(0.1f, 0.5f, 0.7f)));
		RecipeProto val30 = MethedEx.Copy<RecipeProto>(val20);
		ItemProto val31 = MethedEx.Copy<ItemProto>(val21);
		((Proto)val30).ID = num3 + 542;
		((Proto)val30).Name = "晶体重构器运载火箭";
		((Proto)val30).name = Localization.Translate("晶体重构器运载火箭");
		val30.Description = "晶体重构器运载火箭描述";
		val30.description = Localization.Translate("晶体重构器运载火箭描述");
		val30.Items = new int[3] { 9485, 1802, 1305 };
		val30.ItemCounts = new int[3] { 1, 2, 2 };
		val30.Results = new int[1] { 9492 };
		val30.ResultCounts = new int[1] { 1 };
		val30.TimeSpend = 480;
		val30.GridIndex = 205 + num;
		val30.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1522);
		if (MoreMegaStructure.isBattleActive)
		{
			val30.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1923);
		}
		Traverse.Create((object)val30).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconRocketCrysM);
		ProtoRegistry.RegisterItem(9492, Localization.Translate("晶体重构器运载火箭"), Localization.Translate("晶体重构器运载火箭描述"), "Assets/MegaStructureTab/rocketCrystal", 205 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(new Color(1f, 0.9f, 1f), new Color(0.7f, 0.2f, 0.7f)));
		ItemProto val32 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1131);
		RecipeProto val33 = MethedEx.Copy<RecipeProto>(val2);
		ItemProto val34 = MethedEx.Copy<ItemProto>(val32);
		((Proto)val33).ID = num3 + 550;
		((Proto)val33).Name = "多功能集成组件";
		((Proto)val33).name = Localization.Translate("多功能集成组件");
		val33.Description = "多功能集成组件描述";
		val33.description = Localization.Translate("多功能集成组件描述");
		val33.Items = new int[1] { 9500 };
		val33.ItemCounts = new int[1] { 1 };
		val33.Results = new int[1] { 9500 };
		val33.ResultCounts = new int[1] { 1 };
		val33.GridIndex = 199 + num + num2;
		val33.TimeSpend = 60;
		val33.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1203);
		Traverse.Create((object)val33).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconInterCompo);
		ProtoRegistry.RegisterItem(9500, Localization.Translate("多功能集成组件"), Localization.Translate("多功能集成组件描述"), "Assets/MegaStructureTab/integratedcomponents", 109 + num + num2, 1000, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, Color.white));
		RecipeProto val35 = ((ProtoSet<RecipeProto>)(object)LDB.recipes).Select(47);
		RecipeProto val36 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val36).ID = num3 + 551;
		((Proto)val36).Name = "传送带 快速组装";
		((Proto)val36).name = Localization.Translate("传送带 快速组装");
		val36.Description = "快速组装描述";
		val36.description = Localization.Translate("快速组装描述");
		val36.Items = new int[1] { 9500 };
		val36.ItemCounts = new int[1] { 1 };
		val36.Results = new int[1] { 2003 };
		val36.ResultCounts = new int[1] { 60 };
		val36.GridIndex = 401 + num;
		val36.TimeSpend = 6;
		Traverse.Create((object)val36).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickBelt);
		RecipeProto val37 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val37).ID = 552;
		((Proto)val37).Name = "分拣器 快速组装";
		((Proto)val37).name = Localization.Translate("分拣器 快速组装");
		val37.Description = "快速组装描述";
		val37.description = Localization.Translate("快速组装描述");
		val37.Items = new int[1] { 9500 };
		val37.ItemCounts = new int[1] { 1 };
		val37.Results = new int[1] { 2013 };
		val37.ResultCounts = new int[1] { 10 };
		val37.GridIndex = 402 + num;
		val37.TimeSpend = 6;
		Traverse.Create((object)val37).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickSorter);
		RecipeProto val38 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val38).ID = 553;
		((Proto)val38).Name = "配电站 快速组装";
		((Proto)val38).name = Localization.Translate("配电站 快速组装");
		val38.Description = "快速组装描述";
		val38.description = Localization.Translate("快速组装描述");
		val38.Items = new int[1] { 9500 };
		val38.ItemCounts = new int[1] { 1 };
		val38.Results = new int[1] { 2212 };
		val38.ResultCounts = new int[1] { 5 };
		val38.GridIndex = 403 + num;
		val38.TimeSpend = 6;
		Traverse.Create((object)val38).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickPower);
		RecipeProto val39 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val39).ID = 554;
		((Proto)val39).Name = "制造台 快速组装";
		((Proto)val39).name = Localization.Translate("制造台 快速组装");
		val39.Description = "快速组装描述";
		val39.description = Localization.Translate("快速组装描述");
		val39.Items = new int[1] { 9500 };
		val39.ItemCounts = new int[1] { 1 };
		val39.Results = new int[1] { 2305 };
		val39.ResultCounts = new int[1] { 1 };
		val39.GridIndex = 404 + num;
		val39.TimeSpend = 6;
		Traverse.Create((object)val39).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickAssembly);
		RecipeProto val40 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val40).ID = 555;
		((Proto)val40).Name = "位面熔炉 快速组装";
		((Proto)val40).name = Localization.Translate("位面熔炉 快速组装");
		val40.Description = "快速组装描述";
		val40.description = Localization.Translate("快速组装描述");
		val40.Items = new int[1] { 9500 };
		val40.ItemCounts = new int[1] { 1 };
		val40.Results = new int[1] { 2315 };
		val40.ResultCounts = new int[1] { 1 };
		val40.GridIndex = 405 + num;
		val40.TimeSpend = 6;
		Traverse.Create((object)val40).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickSmelter);
		RecipeProto val41 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val41).ID = 556;
		((Proto)val41).Name = "化工厂 快速组装";
		((Proto)val41).name = Localization.Translate("化工厂 快速组装");
		val41.Description = "快速组装描述";
		val41.description = Localization.Translate("快速组装描述");
		val41.Items = new int[1] { 9500 };
		val41.ItemCounts = new int[1] { 2 };
		val41.Results = new int[1] { 2317 };
		val41.ResultCounts = new int[1] { 1 };
		val41.GridIndex = 406 + num;
		val41.TimeSpend = 6;
		val41.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1305);
		Traverse.Create((object)val41).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickChemical);
		RecipeProto val42 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val42).ID = 557;
		((Proto)val42).Name = "精炼厂 快速组装";
		((Proto)val42).name = Localization.Translate("精炼厂 快速组装");
		val42.Description = "快速组装描述";
		val42.description = Localization.Translate("快速组装描述");
		val42.Items = new int[1] { 9500 };
		val42.ItemCounts = new int[1] { 1 };
		val42.Results = new int[1] { 2308 };
		val42.ResultCounts = new int[1] { 2 };
		val42.GridIndex = 407 + num;
		val42.TimeSpend = 6;
		Traverse.Create((object)val42).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickRefinery);
		RecipeProto val43 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val43).ID = 558;
		((Proto)val43).Name = "对撞机 快速组装";
		((Proto)val43).name = Localization.Translate("对撞机 快速组装");
		val43.Description = "快速组装描述";
		val43.description = Localization.Translate("快速组装描述");
		val43.Items = new int[1] { 9500 };
		val43.ItemCounts = new int[1] { 2 };
		val43.Results = new int[1] { 2310 };
		val43.ResultCounts = new int[1] { 1 };
		val43.GridIndex = 408 + num;
		val43.TimeSpend = 6;
		Traverse.Create((object)val43).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickCollider);
		RecipeProto val44 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val44).ID = 559;
		((Proto)val44).Name = "研究站 快速组装";
		((Proto)val44).name = Localization.Translate("研究站 快速组装");
		val44.Description = "快速组装描述";
		val44.description = Localization.Translate("快速组装描述");
		val44.Items = new int[1] { 9500 };
		val44.ItemCounts = new int[1] { 1 };
		val44.Results = new int[1] { 2901 };
		val44.ResultCounts = new int[1] { 2 };
		val44.GridIndex = 409 + num;
		val44.TimeSpend = 6;
		Traverse.Create((object)val44).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickLab);
		RecipeProto val45 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val45).ID = 560;
		((Proto)val45).Name = "人造恒星 快速组装";
		((Proto)val45).name = Localization.Translate("人造恒星 快速组装");
		val45.Description = "快速组装描述";
		val45.description = Localization.Translate("快速组装描述");
		val45.Items = new int[1] { 9500 };
		val45.ItemCounts = new int[1] { 5 };
		val45.Results = new int[1] { 2210 };
		val45.ResultCounts = new int[1] { 1 };
		val45.GridIndex = 410 + num;
		val45.TimeSpend = 6;
		val45.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1144);
		Traverse.Create((object)val45).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickReactor);
		RecipeProto val46 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val46).ID = 561;
		((Proto)val46).Name = "行星内物流 快速组装";
		((Proto)val46).name = Localization.Translate("行星内物流 快速组装");
		val46.Description = "快速组装描述";
		val46.description = Localization.Translate("快速组装描述");
		val46.Items = new int[1] { 9500 };
		val46.ItemCounts = new int[1] { 3 };
		val46.Results = new int[2] { 2103, 5001 };
		val46.ResultCounts = new int[2] { 1, 30 };
		val46.GridIndex = 411 + num;
		val46.TimeSpend = 6;
		val46.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1604);
		Traverse.Create((object)val46).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickPLog);
		RecipeProto val47 = MethedEx.Copy<RecipeProto>(val35);
		((Proto)val47).ID = 562;
		((Proto)val47).Name = "星际物流 快速组装";
		((Proto)val47).name = Localization.Translate("星际物流 快速组装");
		val47.Description = "快速组装描述";
		val47.description = Localization.Translate("快速组装描述");
		val47.Items = new int[1] { 9500 };
		val47.ItemCounts = new int[1] { 5 };
		val47.Results = new int[2] { 2104, 5002 };
		val47.ResultCounts = new int[2] { 1, 10 };
		val47.GridIndex = 412 + num;
		val47.TimeSpend = 6;
		val47.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1605);
		Traverse.Create((object)val47).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconQuickILog);
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val45.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1153);
			val38.GridIndex = 9999;
			val40.GridIndex = 9999;
			val39.GridIndex = 9999;
			val41.GridIndex = 9999;
			val42.GridIndex = 9999;
			val43.GridIndex = 9999;
		}
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2003).recipes.Add(val36);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2013).recipes.Add(val37);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2305).recipes.Add(val39);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2315).recipes.Add(val40);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2317).recipes.Add(val41);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2212).recipes.Add(val38);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2308).recipes.Add(val42);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2310).recipes.Add(val43);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2901).recipes.Add(val44);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2210).recipes.Add(val45);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2103).recipes.Add(val46);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(5001).recipes.Add(val46);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(2104).recipes.Add(val47);
		((ProtoSet<ItemProto>)(object)LDB.items).Select(5002).recipes.Add(val47);
		LDBTool.PreAddProto((Proto)(object)val4);
		LDBTool.PreAddProto((Proto)(object)val6);
		LDBTool.PreAddProto((Proto)(object)val8);
		LDBTool.PreAddProto((Proto)(object)val10);
		LDBTool.PreAddProto((Proto)(object)val12);
		LDBTool.PreAddProto((Proto)(object)val14);
		LDBTool.PreAddProto((Proto)(object)val16);
		LDBTool.PreAddProto((Proto)(object)val18);
		LDBTool.PreAddProto((Proto)(object)val33);
		LDBTool.PreAddProto((Proto)(object)val22);
		LDBTool.PreAddProto((Proto)(object)val24);
		LDBTool.PreAddProto((Proto)(object)val26);
		LDBTool.PreAddProto((Proto)(object)val28);
		LDBTool.PreAddProto((Proto)(object)val30);
		LDBTool.PostAddProto((Proto)(object)val39);
		LDBTool.PostAddProto((Proto)(object)val36);
		LDBTool.PostAddProto((Proto)(object)val41);
		LDBTool.PostAddProto((Proto)(object)val43);
		LDBTool.PostAddProto((Proto)(object)val47);
		LDBTool.PostAddProto((Proto)(object)val44);
		LDBTool.PostAddProto((Proto)(object)val46);
		LDBTool.PostAddProto((Proto)(object)val38);
		LDBTool.PostAddProto((Proto)(object)val45);
		LDBTool.PostAddProto((Proto)(object)val42);
		LDBTool.PostAddProto((Proto)(object)val40);
		LDBTool.PostAddProto((Proto)(object)val37);
		bool flag2 = true;
		LDBTool.SetBuildBar(6, 9, 9512);
	}

	public static void AddNewItems2()
	{
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_010b: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_014d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0161: Unknown result type (might be due to invalid IL or missing references)
		//IL_018f: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0213: Unknown result type (might be due to invalid IL or missing references)
		//IL_0227: Unknown result type (might be due to invalid IL or missing references)
		//IL_0255: Unknown result type (might be due to invalid IL or missing references)
		//IL_025a: Unknown result type (might be due to invalid IL or missing references)
		//IL_066a: Unknown result type (might be due to invalid IL or missing references)
		int num = MoreMegaStructure.pagenum * 1000;
		int num2 = 0;
		int num3 = 0;
		if (MoreMegaStructure.GenesisCompatibility)
		{
			num2 = -200;
			num3 = -8;
		}
		ProtoRegistry.RegisterItem(9503, "力场发生器", "力场发生器描述", "Assets/MegaStructureTab/forceGen", 201 + num, 20, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9504, "复合态晶体", "复合态晶体描述", "Assets/MegaStructureTab/compoCrystal", 202 + num, 100, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9505, "电磁力抑制器", "电磁力抑制器描述", "Assets/MegaStructureTab/elemaginhibitor2", 203 + num, 50, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9506, "胶子发生器", "胶子发生器描述", "Assets/MegaStructureTab/gluonGen", 204 + num, 50, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9507, "强力过载装置", "强力过载装置描述", "Assets/MegaStructureTab/strIntOverloader", 205 + num, 20, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9508, "导流框架", "导流框架描述", "Assets/MegaStructureTab/starcannonframe", 206 + num, 20, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.2f, 0.7f, 0.7f)));
		ProtoRegistry.RegisterItem(9509, "恒星炮组件", "恒星炮组件描述", "Assets/MegaStructureTab/starcannoncompo", 207 + num, 20, (EItemType)3, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.3f, 0.3f, 0.9f)));
		ProtoRegistry.RegisterItem(9510, "恒星炮运载火箭", "恒星炮运载火箭描述", "Assets/MegaStructureTab/rocketStarcannon", 306 + num, 20, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.3f, 0.9f, 0.9f)));
		ItemProto val = ProtoRegistry.RegisterItem(9511, "水滴gm", "水滴描述gm", "Assets/MegaStructureTab/drop1", 707 + num, 10, (EItemType)4, ProtoRegistry.GetDefaultIconDesc(Color.white, Color.white));
		ProtoRegistry.RegisterRecipe(565 + num2, (ERecipeType)4, 240, new int[2] { 9480, 9484 }, new int[2] { 1, 2 }, new int[1] { 9503 }, new int[1] { 1 }, "力场发生器描述", StarCannonTechId, 201 + num, "Assets/MegaStructureTab/forceGen");
		RecipeProto val2 = ProtoRegistry.RegisterRecipe(566 + num2, (ERecipeType)5, 600, new int[5] { 5203, 1126, 1124, 1118, 1120 }, new int[5] { 1, 1, 1, 1, 1 }, new int[1] { 9504 }, new int[1] { 1 }, "复合态晶体描述", 1919, 202 + num, "Assets/MegaStructureTab/compoCrystal");
		ProtoRegistry.RegisterRecipe(567 + num2, (ERecipeType)4, 360, new int[2] { 1305, 1205 }, new int[2] { 1, 2 }, new int[1] { 9505 }, new int[1] { 1 }, "电磁力抑制器描述", 1919, 203 + num, "Assets/MegaStructureTab/elemaginhibitor2");
		RecipeProto val3 = ProtoRegistry.RegisterRecipe(568 + num2, (ERecipeType)4, 360, new int[3] { 9483, 1402, 1122 }, new int[3] { 1, 1, 2 }, new int[1] { 9506 }, new int[1] { 1 }, "胶子发生器描述", 1919, 204 + num, "Assets/MegaStructureTab/gluonGen");
		RecipeProto val4 = ProtoRegistry.RegisterRecipe(569 + num2, (ERecipeType)4, 1200, new int[2] { 9506, 9486 }, new int[2] { 2, 2 }, new int[1] { 9507 }, new int[1] { 1 }, "强力过载装置描述", 1919, 205 + num, "Assets/MegaStructureTab/strIntOverloader");
		ProtoRegistry.RegisterRecipe(570 + num2, (ERecipeType)4, 180, new int[3] { 1125, 9481, 9503 }, new int[3] { 3, 2, 3 }, new int[1] { 9508 }, new int[1] { 1 }, "导流框架描述", StarCannonTechId, 206 + num, "Assets/MegaStructureTab/starcannonframe");
		ProtoRegistry.RegisterRecipe(571 + num2, (ERecipeType)4, 480, new int[2] { 1209, 9508 }, new int[2] { 3, 2 }, new int[1] { 9509 }, new int[1] { 1 }, "恒星炮组件描述", StarCannonTechId, 207 + num, "Assets/MegaStructureTab/starcannoncompo");
		ProtoRegistry.RegisterRecipe(572 + num2, (ERecipeType)4, 360, new int[3] { 9509, 1802, 1305 }, new int[3] { 2, 2, 2 }, new int[1] { 9510 }, new int[1] { 1 }, "恒星炮运载火箭描述", StarCannonTechId, 306 + num, "Assets/MegaStructureTab/rocketStarcannon");
		RecipeProto val5 = ProtoRegistry.RegisterRecipe(573 + num2, (ERecipeType)4, 3600, new int[3] { 9505, 9507, 9504 }, new int[3] { 20, 20, 100 }, new int[1] { 9511 }, new int[1] { 1 }, "水滴描述gm", 1919, 707 + num, "Assets/MegaStructureTab/drop1");
		TechProto val6 = ProtoRegistry.RegisterTech(StarCannonTechId, "尼科尔戴森光束", "尼科尔戴森光束描述", "尼科尔戴森光束结论", "Assets/MegaStructureTab/starcannontech", new int[0], new int[1] { 5201 }, new int[1] { 200 }, 36000L, new int[4]
		{
			570 + num2,
			571 + num2,
			572 + num2,
			565 + num2
		}, new Vector2((float)(65 + num3), -3f));
		val6.PreTechsImplicit = new int[1] { 1522 };
		val6.IsHiddenTech = true;
		val6.PreItem = new int[1] { 5201 };
		val2.Handcraft = false;
		val3.Handcraft = false;
		val4.Handcraft = false;
		val5.Handcraft = false;
	}

	public static void EditOriRR(Proto proto)
	{
		if (proto is ItemProto && proto.ID == 2208)
		{
			ItemProto val = (ItemProto)(object)((proto is ItemProto) ? proto : null);
			val.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
			val.Grade = 1;
		}
	}

	public static void AddGenesisRecipes()
	{
		if (MoreMegaStructure.GenesisCompatibility)
		{
			int num = MoreMegaStructure.pagenum * 1000 + 100;
			RecipeProto val = ProtoRegistry.RegisterRecipe(376, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6257 }, new int[1] { 1 }, "巨建快速组装描述", 1923, 403 + num, "Assets/MegaStructureTab/quick6257");
			RecipeProto val2 = ProtoRegistry.RegisterRecipe(377, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6258 }, new int[1] { 1 }, "巨建快速组装描述", 1924, 404 + num, "Assets/MegaStructureTab/quick6258");
			RecipeProto val3 = ProtoRegistry.RegisterRecipe(378, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6259 }, new int[1] { 1 }, "巨建快速组装描述", 1925, 405 + num, "Assets/MegaStructureTab/quick6259");
			RecipeProto val4 = ProtoRegistry.RegisterRecipe(379, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6260 }, new int[1] { 1 }, "巨建快速组装描述", 1926, 406 + num, "Assets/MegaStructureTab/quick6260");
			RecipeProto val5 = ProtoRegistry.RegisterRecipe(380, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6264 }, new int[1] { 1 }, "巨建快速组装描述", 1931, 407 + num, "Assets/MegaStructureTab/quick6264");
			RecipeProto val6 = ProtoRegistry.RegisterRecipe(381, (ERecipeType)10, 6, new int[1] { 9500 }, new int[1] { 25 }, new int[1] { 6265 }, new int[1] { 1 }, "巨建快速组装描述", 1927, 408 + num, "Assets/MegaStructureTab/quick6265");
			val._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6257");
			val2._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6258");
			val3._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6259");
			val4._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6260");
			val5._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6264");
			val6._iconSprite = Resources.Load<Sprite>("Assets/MegaStructureTab/quick6265");
			LDBTool.PostAddProto((Proto)(object)val);
			LDBTool.PostAddProto((Proto)(object)val2);
			LDBTool.PostAddProto((Proto)(object)val3);
			LDBTool.PostAddProto((Proto)(object)val4);
			LDBTool.PostAddProto((Proto)(object)val5);
			LDBTool.PostAddProto((Proto)(object)val6);
		}
	}

	public static void AddReceivers()
	{
		int num = MoreMegaStructure.pagenum * 1000;
		bool flag = true;
		num = MoreMegaStructure.battlePagenum * 1000 + 100;
		int num2 = 0;
		if (MoreMegaStructure.GenesisCompatibility)
		{
			num2 = -200;
		}
		RecipeProto val = ((ProtoSet<RecipeProto>)(object)LDB.recipes).Select(41);
		ItemProto val2 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2208);
		ItemProto val3 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2104);
		RecipeProto val4 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val5 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val4).ID = num2 + 543;
		((Proto)val4).Name = "铁金属重构装置";
		((Proto)val4).name = Localization.Translate("铁金属重构装置");
		val4.Description = "接收重构装置描述";
		val4.description = Localization.Translate("接收重构装置描述");
		val4.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val4.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val4.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val4.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val4.Results = new int[1] { 9493 };
		val4.ResultCounts = new int[1] { 1 };
		val4.GridIndex = 301 + num;
		val4.TimeSpend = 480;
		Traverse.Create((object)val4).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverIron);
		val4.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val4.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val5).ID = 9493;
		((Proto)val5).Name = "铁金属重构装置";
		((Proto)val5).name = Localization.Translate("铁金属重构装置");
		val5.Description = "接收重构装置描述";
		val5.description = Localization.Translate("接收重构装置描述");
		val5.GridIndex = 301 + num;
		val5.HeatValue = 0L;
		val5.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val5.prefabDesc.powerProductHeat = 6000000L;
		val5.prefabDesc.powerProductId = 1101;
		val5.handcraft = val4;
		val5.handcrafts = new List<RecipeProto> { val4 };
		val5.maincraft = val4;
		val5.recipes = new List<RecipeProto> { val4 };
		val5.Grade = 2;
		val5.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val5).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverIron);
		RecipeProto val6 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val7 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val6).ID = num2 + 544;
		((Proto)val6).Name = "铜金属重构装置";
		((Proto)val6).name = Localization.Translate("铜金属重构装置");
		val6.Description = "接收重构装置描述";
		val6.description = Localization.Translate("接收重构装置描述");
		val6.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val6.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val6.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val6.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val6.Results = new int[1] { 9494 };
		val6.ResultCounts = new int[1] { 1 };
		val6.GridIndex = 302 + num;
		val6.TimeSpend = 480;
		Traverse.Create((object)val6).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCopper);
		val6.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val6.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val7).ID = 9494;
		((Proto)val7).Name = "铜金属重构装置";
		((Proto)val7).name = Localization.Translate("铜金属重构装置");
		val7.Description = "接收重构装置描述";
		val7.description = Localization.Translate("接收重构装置描述");
		val7.GridIndex = 302 + num;
		val7.HeatValue = 0L;
		val7.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val7.prefabDesc.powerProductHeat = 6000000L;
		val7.prefabDesc.powerProductId = 1104;
		val7.handcraft = val6;
		val7.handcrafts = new List<RecipeProto> { val6 };
		val7.maincraft = val6;
		val7.recipes = new List<RecipeProto> { val6 };
		val7.Grade = 3;
		val7.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val7).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCopper);
		RecipeProto val8 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val9 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val8).ID = num2 + 545;
		((Proto)val8).Name = "高纯硅重构装置";
		((Proto)val8).name = Localization.Translate("高纯硅重构装置");
		val8.Description = "接收重构装置描述";
		val8.description = Localization.Translate("接收重构装置描述");
		val8.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val8.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val8.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val8.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val8.Results = new int[1] { 9495 };
		val8.ResultCounts = new int[1] { 1 };
		val8.GridIndex = 303 + num;
		val8.TimeSpend = 480;
		Traverse.Create((object)val8).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverSilicon);
		val8.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val8.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val9).ID = 9495;
		((Proto)val9).Name = "高纯硅重构装置";
		((Proto)val9).name = Localization.Translate("高纯硅重构装置");
		val9.Description = "接收重构装置描述";
		val9.description = Localization.Translate("接收重构装置描述");
		val9.GridIndex = 303 + num;
		val9.HeatValue = 0L;
		val9.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val9.prefabDesc.powerProductHeat = 6000000L;
		val9.prefabDesc.powerProductId = 1105;
		val9.handcraft = val8;
		val9.handcrafts = new List<RecipeProto> { val8 };
		val9.maincraft = val8;
		val9.recipes = new List<RecipeProto> { val8 };
		val9.Grade = 4;
		val9.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val9).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverSilicon);
		RecipeProto val10 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val11 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val10).ID = num2 + 546;
		((Proto)val10).Name = "钛金属重构装置";
		((Proto)val10).name = Localization.Translate("钛金属重构装置");
		val10.Description = "接收重构装置描述";
		val10.description = Localization.Translate("接收重构装置描述");
		val10.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val10.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val10.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val10.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val10.Results = new int[1] { 9496 };
		val10.ResultCounts = new int[1] { 1 };
		val10.GridIndex = 304 + num;
		val10.TimeSpend = 480;
		Traverse.Create((object)val10).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverTitanium);
		val10.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val10.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val11).ID = 9496;
		((Proto)val11).Name = "钛金属重构装置";
		((Proto)val11).name = Localization.Translate("钛金属重构装置");
		val11.Description = "接收重构装置描述";
		val11.description = Localization.Translate("接收重构装置描述");
		val11.GridIndex = 304 + num;
		val11.HeatValue = 0L;
		val11.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val11.prefabDesc.powerProductHeat = 6000000L;
		val11.prefabDesc.powerProductId = 1106;
		val11.handcraft = val10;
		val11.handcrafts = new List<RecipeProto> { val10 };
		val11.maincraft = val10;
		val11.recipes = new List<RecipeProto> { val10 };
		val11.Grade = 5;
		val11.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val11).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverTitanium);
		RecipeProto val12 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val13 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val12).ID = num2 + 547;
		((Proto)val12).Name = "单极磁石重构装置";
		((Proto)val12).name = Localization.Translate("单极磁石重构装置");
		val12.Description = "接收重构装置描述";
		val12.description = Localization.Translate("接收重构装置描述");
		val12.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val12.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val12.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val12.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val12.Results = new int[1] { 9497 };
		val12.ResultCounts = new int[1] { 1 };
		val12.GridIndex = 305 + num;
		val12.TimeSpend = 480;
		Traverse.Create((object)val12).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverMagore);
		val12.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val12.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val13).ID = 9497;
		((Proto)val13).Name = "单极磁石重构装置";
		((Proto)val13).name = Localization.Translate("单极磁石重构装置");
		val13.Description = "接收重构装置描述";
		val13.description = Localization.Translate("接收重构装置描述");
		val13.GridIndex = 305 + num;
		val13.HeatValue = 0L;
		val13.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val13.prefabDesc.powerProductHeat = 6000000L;
		val13.prefabDesc.powerProductId = 1016;
		val13.handcraft = val12;
		val13.handcrafts = new List<RecipeProto> { val12 };
		val13.maincraft = val12;
		val13.recipes = new List<RecipeProto> { val12 };
		val13.Grade = 6;
		val13.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val13).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverMagore);
		RecipeProto val14 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val15 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val14).ID = num2 + 563;
		((Proto)val14).Name = "石墨提炼装置";
		((Proto)val14).name = Localization.Translate("石墨提炼装置");
		val14.Description = "接收重构装置描述";
		val14.description = Localization.Translate("接收重构装置描述");
		val14.Items = new int[4] { 1103, 1404, 1303, 9481 };
		val14.ItemCounts = new int[4] { 20, 10, 5, 2 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val14.Items = new int[4] { 1103, 1014, 1303, 9481 };
			val14.ItemCounts = new int[4] { 20, 20, 5, 2 };
		}
		val14.Results = new int[1] { 9501 };
		val14.ResultCounts = new int[1] { 1 };
		val14.GridIndex = 306 + num;
		val14.TimeSpend = 480;
		Traverse.Create((object)val14).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCoal);
		val14.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val14.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1920);
		}
		((Proto)val15).ID = 9501;
		((Proto)val15).Name = "石墨提炼装置";
		((Proto)val15).name = Localization.Translate("石墨提炼装置");
		val15.Description = "接收重构装置描述";
		val15.description = Localization.Translate("接收重构装置描述");
		val15.GridIndex = 306 + num;
		val15.HeatValue = 0L;
		val15.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val15.prefabDesc.powerProductHeat = 12000000L;
		val15.prefabDesc.powerProductId = 1109;
		val15.handcraft = val14;
		val15.handcrafts = new List<RecipeProto> { val14 };
		val15.maincraft = val14;
		val15.recipes = new List<RecipeProto> { val14 };
		val15.Grade = 7;
		val15.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val15).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCoal);
		RecipeProto val16 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val17 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val16).ID = num2 + 548;
		((Proto)val16).Name = "晶体接收器";
		((Proto)val16).name = Localization.Translate("晶体接收器");
		val16.Description = "晶体接收器描述";
		val16.description = Localization.Translate("晶体接收器描述");
		val16.Items = new int[4] { 1107, 1404, 1303, 1206 };
		val16.ItemCounts = new int[4] { 10, 10, 5, 5 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val16.Items = new int[3] { 1107, 1014, 1303 };
			val16.ItemCounts = new int[3] { 10, 20, 10 };
		}
		val16.Results = new int[1] { 9498 };
		val16.ResultCounts = new int[1] { 1 };
		val16.GridIndex = 307 + num;
		val16.TimeSpend = 480;
		Traverse.Create((object)val16).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCasimir);
		val16.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val16.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1923);
		}
		((Proto)val17).ID = 9498;
		((Proto)val17).Name = "晶体接收器";
		((Proto)val17).name = Localization.Translate("晶体接收器");
		val17.Description = "晶体接收器描述";
		val17.description = Localization.Translate("晶体接收器描述");
		val17.GridIndex = 307 + num;
		val17.HeatValue = 0L;
		val17.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val17.prefabDesc.powerProductHeat = 120000000L;
		val17.prefabDesc.powerProductId = 1126;
		val17.handcraft = val16;
		val17.handcrafts = new List<RecipeProto> { val16 };
		val17.maincraft = val16;
		val17.recipes = new List<RecipeProto> { val16 };
		val17.Grade = 8;
		val17.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val17).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverCasimir);
		RecipeProto val18 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val19 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val18).ID = num2 + 564;
		((Proto)val18).Name = "光栅晶体接收器";
		((Proto)val18).name = Localization.Translate("光栅晶体接收器");
		val18.Description = "晶体接收器描述";
		val18.description = Localization.Translate("晶体接收器描述");
		val18.Items = new int[4] { 1107, 1404, 1303, 1206 };
		val18.ItemCounts = new int[4] { 10, 10, 5, 5 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val18.Items = new int[3] { 1107, 1014, 1303 };
			val18.ItemCounts = new int[3] { 10, 20, 10 };
		}
		val18.Results = new int[1] { 9502 };
		val18.ResultCounts = new int[1] { 1 };
		val18.GridIndex = 308 + num;
		val18.TimeSpend = 480;
		Traverse.Create((object)val18).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverGrating);
		val18.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val18.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1923);
		}
		((Proto)val19).ID = 9502;
		((Proto)val19).Name = "光栅晶体接收器";
		((Proto)val19).name = Localization.Translate("光栅晶体接收器");
		val19.Description = "晶体接收器描述";
		val19.description = Localization.Translate("晶体接收器描述");
		val19.GridIndex = 308 + num;
		val19.HeatValue = 0L;
		val19.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val19.prefabDesc.powerProductHeat = 12000000L;
		val19.prefabDesc.powerProductId = 1014;
		val19.handcraft = val18;
		val19.handcrafts = new List<RecipeProto> { val18 };
		val19.maincraft = val18;
		val19.recipes = new List<RecipeProto> { val18 };
		val19.Grade = 9;
		val19.Upgrades = new int[9] { 2208, 9493, 9494, 9495, 9496, 9497, 9501, 9498, 9502 };
		Traverse.Create((object)val19).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverGrating);
		RecipeProto val20 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val21 = MethedEx.Copy<ItemProto>(val2);
		((Proto)val20).ID = num2 + 549;
		((Proto)val20).Name = "组件集成装置";
		((Proto)val20).name = Localization.Translate("组件集成装置");
		val20.Description = "组件集成装置描述";
		val20.description = Localization.Translate("组件集成装置描述");
		val20.Items = new int[4] { 1125, 1404, 1303, 1206 };
		val20.ItemCounts = new int[4] { 10, 10, 5, 5 };
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val20.Items = new int[3] { 1125, 1014, 1303 };
			val20.ItemCounts = new int[3] { 10, 20, 10 };
		}
		val20.Results = new int[1] { 9499 };
		val20.ResultCounts = new int[1] { 1 };
		val20.GridIndex = 9902 + num;
		val20.TimeSpend = 480;
		Traverse.Create((object)val20).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverIC);
		val20.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val20.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1922);
		}
		if (MoreMegaStructure.GenesisCompatibility)
		{
			val20.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		}
		((Proto)val21).ID = 9499;
		((Proto)val21).Name = "组件集成装置";
		((Proto)val21).name = Localization.Translate("组件集成装置");
		val21.Description = "组件集成装置描述";
		val21.description = Localization.Translate("组件集成装置描述");
		val21.GridIndex = 9902 + num;
		val21.HeatValue = 0L;
		val21.prefabDesc = MethedEx.Copy<PrefabDesc>(val2.prefabDesc);
		val21.prefabDesc.powerProductHeat = MoreMegaStructure.multifunctionComponentHeat;
		val21.prefabDesc.powerProductId = 9500;
		val21.handcraft = val20;
		val21.handcrafts = new List<RecipeProto> { val20 };
		val21.maincraft = val20;
		val21.recipes = new List<RecipeProto> { val20 };
		Traverse.Create((object)val21).Field("_iconSprite").SetValue((object)MoreMegaStructure.iconReceiverIC);
		RecipeProto val22 = MethedEx.Copy<RecipeProto>(val);
		ItemProto val23 = MethedEx.Copy<ItemProto>(val3);
		((Proto)val22).ID = num2 + 575;
		((Proto)val22).Name = "物资交换器";
		((Proto)val22).name = Localization.Translate("物资交换器");
		val22.Description = "物资交换器描述";
		val22.description = Localization.Translate("物资交换器描述");
		val22.Items = new int[2] { 2104, 2208 };
		val22.ItemCounts = new int[2] { 1, 1 };
		val22.Results = new int[1] { 9512 };
		val22.ResultCounts = new int[1] { 1 };
		val22.GridIndex = 309 + num;
		val22.TimeSpend = 480;
		Traverse.Create((object)val22).Field("_iconSprite").SetValue((object)Resources.Load<Sprite>("Assets/MegaStructureTab/exchangeLS"));
		val22.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1504);
		if (MoreMegaStructure.isBattleActive)
		{
			val22.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1922);
		}
		((Proto)val23).ID = 9512;
		((Proto)val23).Name = "物资交换器";
		((Proto)val23).name = Localization.Translate("物资交换器");
		val23.Description = "物资交换器描述";
		val23.description = Localization.Translate("物资交换器描述");
		val23.GridIndex = 309 + num;
		val23.HeatValue = 0L;
		val23.prefabDesc = MethedEx.Copy<PrefabDesc>(val3.prefabDesc);
		val23.handcraft = val22;
		val23.handcrafts = new List<RecipeProto> { val22 };
		val23.maincraft = val22;
		val23.recipes = new List<RecipeProto> { val22 };
		Traverse.Create((object)val23).Field("_iconSprite").SetValue((object)Resources.Load<Sprite>("Assets/MegaStructureTab/exchangeLS"));
		LDBTool.PostAddProto((Proto)(object)val5);
		LDBTool.PostAddProto((Proto)(object)val4);
		LDBTool.PostAddProto((Proto)(object)val7);
		LDBTool.PostAddProto((Proto)(object)val6);
		LDBTool.PostAddProto((Proto)(object)val9);
		LDBTool.PostAddProto((Proto)(object)val8);
		LDBTool.PostAddProto((Proto)(object)val11);
		LDBTool.PostAddProto((Proto)(object)val10);
		LDBTool.PostAddProto((Proto)(object)val13);
		LDBTool.PostAddProto((Proto)(object)val12);
		LDBTool.PostAddProto((Proto)(object)val17);
		LDBTool.PostAddProto((Proto)(object)val16);
		LDBTool.PostAddProto((Proto)(object)val21);
		LDBTool.PostAddProto((Proto)(object)val20);
		LDBTool.PostAddProto((Proto)(object)val15);
		LDBTool.PostAddProto((Proto)(object)val14);
		LDBTool.PostAddProto((Proto)(object)val19);
		LDBTool.PostAddProto((Proto)(object)val18);
		LDBTool.PostAddProto((Proto)(object)val23);
		LDBTool.PostAddProto((Proto)(object)val22);
	}

	public static void AddTranslateUILabel()
	{
		StringProto stringProto = new StringProto();
		stringProto.Name = "巨构建筑";
		stringProto.ZHCN = "巨构建筑";
		stringProto.ENUS = "Megastructure";
		stringProto.RegisterTranslation();
		StringProto stringProto2 = new StringProto();
		stringProto2.Name = "规划巨构建筑类型";
		stringProto2.ZHCN = "规划巨构建筑类型";
		stringProto2.ENUS = "Plan Megastructure";
		stringProto2.RegisterTranslation();
		StringProto stringProto3 = new StringProto();
		stringProto3.Name = "自由组件";
		stringProto3.ZHCN = "自由组件";
		stringProto3.ENUS = "Floating components ";
		stringProto3.RegisterTranslation();
		StringProto stringProto4 = new StringProto();
		stringProto4.Name = "工作效率";
		stringProto4.ZHCN = "工作效率";
		stringProto4.ENUS = "Capacity";
		stringProto4.RegisterTranslation();
		StringProto stringProto5 = new StringProto();
		stringProto5.Name = "自由组件数量";
		stringProto5.ZHCN = "自由组件数量";
		stringProto5.ENUS = "Floating components in total";
		stringProto5.RegisterTranslation();
		StringProto stringProto6 = new StringProto();
		stringProto6.Name = "自由组件云";
		stringProto6.ZHCN = "自由组件云";
		stringProto6.ENUS = "Components Swarm";
		stringProto6.RegisterTranslation();
		StringProto stringProto7 = new StringProto();
		stringProto7.Name = "组件云蓝图";
		stringProto7.ZHCN = "组件云蓝图";
		stringProto7.ENUS = "Swarm Blueprint";
		stringProto7.RegisterTranslation();
		StringProto stringProto8 = new StringProto();
		stringProto8.Name = "锚定结构";
		stringProto8.ZHCN = "锚定结构";
		stringProto8.ENUS = "Anchored Structure";
		stringProto8.RegisterTranslation();
		StringProto stringProto9 = new StringProto();
		stringProto9.Name = "结构层级";
		stringProto9.ZHCN = "结构层级";
		stringProto9.ENUS = "Structure Layers";
		stringProto9.RegisterTranslation();
		StringProto stringProto10 = new StringProto();
		stringProto10.Name = "锚定结构蓝图";
		stringProto10.ZHCN = "锚定结构蓝图";
		stringProto10.ENUS = "Anchored Structure Blueprint";
		stringProto10.RegisterTranslation();
		StringProto stringProto11 = new StringProto();
		stringProto11.Name = "恒星功效系数";
		stringProto11.ZHCN = "恒星功效系数";
		stringProto11.ENUS = "Star Efficiency";
		stringProto11.RegisterTranslation();
		StringProto stringProto12 = new StringProto();
		stringProto12.Name = "最大工作效率";
		stringProto12.ZHCN = "最大工作效率";
		stringProto12.ENUS = "Capacity";
		stringProto12.RegisterTranslation();
		StringProto stringProto13 = new StringProto();
		stringProto13.Name = "巨构建筑蓝图";
		stringProto13.ZHCN = "巨构建筑蓝图";
		stringProto13.ENUS = "Structure Blueprint";
		stringProto13.RegisterTranslation();
		StringProto stringProto14 = new StringProto();
		stringProto14.Name = "自由组件寿命分布";
		stringProto14.ZHCN = "自由组件寿命分布";
		stringProto14.ENUS = "Life Distribution of Floating Components";
		stringProto14.RegisterTranslation();
		StringProto stringProto15 = new StringProto();
		stringProto15.Name = "自由组件状态统计";
		stringProto15.ZHCN = "自由组件状态统计";
		stringProto15.ENUS = "Floating Components Status Statistics";
		stringProto15.RegisterTranslation();
		StringProto stringProto16 = new StringProto();
		stringProto16.Name = "自由组件工作效率";
		stringProto16.ZHCN = "自由组件工作效率";
		stringProto16.ENUS = "Generation of Floating Components";
		stringProto16.RegisterTranslation();
		StringProto stringProto17 = new StringProto();
		stringProto17.Name = "锚定结构工作效率";
		stringProto17.ZHCN = "锚定结构工作效率";
		stringProto17.ENUS = "Generation of Anchored Structure";
		stringProto17.RegisterTranslation();
		StringProto stringProto18 = new StringProto();
		stringProto18.Name = "研究效率";
		stringProto18.ZHCN = "研究效率";
		stringProto18.ENUS = "Research Capacity";
		stringProto18.RegisterTranslation();
		StringProto stringProto19 = new StringProto();
		stringProto19.Name = "折跃场加速";
		stringProto19.ZHCN = "折跃场加速";
		stringProto19.ENUS = "Warp Acceleration";
		stringProto19.RegisterTranslation();
		StringProto stringProto20 = new StringProto();
		stringProto20.Name = "切换快捷键";
		stringProto20.ZHCN = "CapsLock\n↑快捷键切换↓";
		stringProto20.ENUS = "CapsLock\n↑ Hotkey Row ↓";
		stringProto20.RegisterTranslation();
	}

	public static void AddTranslateStructureName()
	{
		StringProto stringProto = new StringProto();
		stringProto.Name = "规划";
		stringProto.ZHCN = "规划";
		stringProto.ENUS = "Plan ";
		stringProto.RegisterTranslation();
		StringProto stringProto2 = new StringProto();
		stringProto2.Name = "戴森球jinx";
		stringProto2.ZHCN = "戴森球";
		stringProto2.ENUS = "Dyson Sphere";
		stringProto2.RegisterTranslation();
		StringProto stringProto3 = new StringProto();
		stringProto3.Name = "物质解压器";
		stringProto3.ZHCN = "物质解压器";
		stringProto3.ENUS = "Matter Decompressor";
		stringProto3.RegisterTranslation();
		StringProto stringProto4 = new StringProto();
		stringProto4.Name = "科学枢纽";
		stringProto4.ZHCN = "科学枢纽";
		stringProto4.ENUS = "Science Nexus";
		stringProto4.RegisterTranslation();
		StringProto stringProto5 = new StringProto();
		stringProto5.Name = "折跃场广播阵列";
		stringProto5.ZHCN = "折跃场广播阵列";
		stringProto5.ENUS = "Warp Field Broadcast Array";
		stringProto5.RegisterTranslation();
		StringProto stringProto6 = new StringProto();
		stringProto6.Name = "星际组装厂";
		stringProto6.ZHCN = "星际组装厂";
		stringProto6.ENUS = "Interstellar Assembly";
		stringProto6.RegisterTranslation();
		StringProto stringProto7 = new StringProto();
		stringProto7.Name = "晶体重构器";
		stringProto7.ZHCN = "晶体重构器";
		stringProto7.ENUS = "Crystal Reconstructor";
		stringProto7.RegisterTranslation();
		StringProto stringProto8 = new StringProto();
		stringProto8.Name = "警告最多一个";
		stringProto8.ZHCN = "折跃场广播阵列最多建造一个,请检查星系:";
		stringProto8.ENUS = "You can only build one Wrapfield broadcast array, please check:";
		stringProto8.RegisterTranslation();
		StringProto stringProto9 = new StringProto();
		stringProto9.Name = "警告先拆除";
		stringProto9.ZHCN = "你必须先拆除所有锚定结构(节点)再规划不同的巨构建筑。";
		stringProto9.ENUS = "You have to remove all anchor structures (nodes) before planning different megastructures.";
		stringProto9.RegisterTranslation();
		StringProto stringProto10 = new StringProto();
		stringProto10.Name = "警告仅黑洞";
		stringProto10.ZHCN = "物质解压器只能在黑洞上建造。";
		stringProto10.ENUS = "Matter decompressors can only be built on black holes.";
		stringProto10.RegisterTranslation();
		StringProto stringProto11 = new StringProto();
		stringProto11.Name = "警告仅中子星白矮星";
		stringProto11.ZHCN = "晶体重构器只能在中子星或白矮星上建造。";
		stringProto11.ENUS = "Crystal reconstructors can only be built on neutron stars or white drawf.";
		stringProto11.RegisterTranslation();
		StringProto stringProto12 = new StringProto();
		stringProto12.Name = "当前";
		stringProto12.ZHCN = "当前";
		stringProto12.ENUS = "Currently";
		stringProto12.RegisterTranslation();
		StringProto stringProto13 = new StringProto();
		stringProto13.Name = "警告未知错误";
		stringProto13.ZHCN = "设置异常失败,请像mod作者反馈该问题。";
		stringProto13.ENUS = "The setting fails abnormally, please report this problem.";
		stringProto13.RegisterTranslation();
		StringProto stringProto14 = new StringProto();
		stringProto14.Name = "MegaStructures";
		stringProto14.ZHCN = "巨构";
		stringProto14.ENUS = "Megastructures";
		stringProto14.RegisterTranslation();
		StringProto stringProto15 = new StringProto();
		stringProto15.Name = "物质合成";
		stringProto15.ZHCN = "物质合成";
		stringProto15.ENUS = "Substance generation";
		stringProto15.RegisterTranslation();
		StringProto stringProto16 = new StringProto();
		stringProto16.Name = "恒星炮";
		stringProto16.ZHCN = "恒星炮";
		stringProto16.ENUS = "Star cannon";
		stringProto16.RegisterTranslation();
		StringProto stringProto17 = new StringProto();
		stringProto17.Name = "警告最多一个恒星炮";
		stringProto17.ZHCN = "恒星炮最多建造一个,请检查星系:";
		stringProto17.ENUS = "You can only build one Star cannon, please check:";
		stringProto17.RegisterTranslation();
	}

	public static void AddTranslateProtoNames1()
	{
		StringProto stringProto = new StringProto();
		stringProto.Name = "引力发生装置";
		stringProto.ZHCN = "引力发生装置";
		stringProto.ENUS = "Gravity generator";
		stringProto.RegisterTranslation();
		StringProto stringProto2 = new StringProto();
		stringProto2.Name = "引力发生装置描述";
		stringProto2.ZHCN = "引导临界光子轰击奇异物质即可激发引力波。恒星附近能够获取大量的临界光子,从而能够使引力发生装置高效地运行。";
		stringProto2.ENUS = "Gravitational waves can be excited by directing critical photons to hit strange matter. A large number of critical photons can be obtained near the star, allowing the gravitational generator to operate efficiently.";
		stringProto2.RegisterTranslation();
		StringProto stringProto3 = new StringProto();
		stringProto3.Name = "位面约束环";
		stringProto3.ZHCN = "位面约束环";
		stringProto3.ENUS = "Plane constraint ring";
		stringProto3.RegisterTranslation();
		StringProto stringProto4 = new StringProto();
		stringProto4.Name = "位面约束环描述";
		stringProto4.ZHCN = "位面约束环能够协同引力透镜引导并操纵引力,也是构建科学枢纽所需的恒星级粒子加速器的必要组件。";
		stringProto4.ENUS = "Plane constraint ring can guide and manipulate gravity with graviton lens, and it is also an essential component of the stellar-scale particle accelerators which are needed to build science nexus.";
		stringProto4.RegisterTranslation();
		StringProto stringProto5 = new StringProto();
		stringProto5.Name = "引力钻头";
		stringProto5.ZHCN = "引力钻头";
		stringProto5.ENUS = "Graviton drill";
		stringProto5.RegisterTranslation();
		StringProto stringProto6 = new StringProto();
		stringProto6.Name = "引力钻头描述";
		stringProto6.ZHCN = "借助黑洞本身的引力,引力钻头能够将物质从黑洞中取出,这还包括吸积盘中大量的单极磁石。借助谐振盘,黑洞原质将能够被解压并在星系内输送。";
		stringProto6.ENUS = "The graviton drill can pull matter out of the black hole using the gravity of the black hole itself, which also includes the unipolar magnets in the accretion disk. With the help of the resonant disc, the matter from the black hole will be able to be decompressed and transported within the galaxy.";
		stringProto6.RegisterTranslation();
		StringProto stringProto7 = new StringProto();
		stringProto7.Name = "隧穿激发装置";
		stringProto7.ZHCN = "隧穿激发装置";
		stringProto7.ENUS = "Tunneling exciter";
		stringProto7.RegisterTranslation();
		StringProto stringProto8 = new StringProto();
		stringProto8.Name = "隧穿激发装置描述";
		stringProto8.ZHCN = "隧穿激发装置可以完美地掌控量子隧穿效应,常被用来强化量子芯片的处理能力和纠错能力。通过量子隧穿效应还能够轻易突破弯曲空间的能量势垒,使得在任意远的空间打开裂口成为可能。";
		stringProto8.ENUS = "Tunneling exciters can perfectly control the quantum tunneling effect, and are often used to enhance the processing and error correction capabilities of quantum chips. The quantum tunneling effect can also easily break through the energy barrier of the curved space, making it possible to open the warp crack in any space far away.";
		stringProto8.RegisterTranslation();
		StringProto stringProto9 = new StringProto();
		stringProto9.Name = "谐振盘";
		stringProto9.ZHCN = "谐振盘";
		stringProto9.ENUS = "Resonant disc";
		stringProto9.RegisterTranslation();
		StringProto stringProto10 = new StringProto();
		stringProto10.Name = "谐振盘描述";
		stringProto10.ZHCN = "谐振盘仅通过恒星级别的能量就可以产生跨越恒星系的空间波动能量束。如果将谐振盘组成阵列,理论上可以形成覆盖全宇宙的折跃能量场。";
		stringProto10.ENUS = "The resonant disc can generate interstellar-scale space-wave energy beams from only stellar-scale energy. If the resonant discs are formed into an array, a warp field covering the entire universe can theoretically be formed.";
		stringProto10.RegisterTranslation();
		StringProto stringProto11 = new StringProto();
		stringProto11.Name = "光子探针";
		stringProto11.ZHCN = "光子探针";
		stringProto11.ENUS = "Photon probe";
		stringProto11.RegisterTranslation();
		StringProto stringProto12 = new StringProto();
		stringProto12.Name = "光子探针描述";
		stringProto12.ZHCN = "将临界光子变频后发射并引导晶体重构,发射的光子还能被回收。";
		stringProto12.ENUS = "The critical photons are frequency-converted and emitted, thereby guiding the crystal reconstruction. The photons can also be recovered.";
		stringProto12.RegisterTranslation();
		StringProto stringProto13 = new StringProto();
		stringProto13.Name = "量子计算机";
		stringProto13.ZHCN = "量子计算机";
		stringProto13.ENUS = "Quantum computer";
		stringProto13.RegisterTranslation();
		StringProto stringProto14 = new StringProto();
		stringProto14.Name = "量子计算机描述";
		stringProto14.ZHCN = "只要供给足够的能量,量子计算机的运算时钟能够无限逼近普朗克时间。通过量子比特协同,其潜在的单线程运算速率还能突破物理极限,并可以无限提升。现在,限制其计算速度的将只有能量输入水平。";
		stringProto14.ENUS = "As long as enough energy is supplied, the computing clock of a quantum computer can approach Planck time indefinitely. Through the cooperation of qubits, its potential single-threaded operation rate can also break through the physical limit and can be infinitely improved. Now, it will only be the level of energy input that will limit its computational speed.";
		stringProto14.RegisterTranslation();
		StringProto stringProto15 = new StringProto();
		stringProto15.Name = "星际组装厂组件";
		stringProto15.ZHCN = "星际组装厂组件";
		stringProto15.ENUS = "Interstellar assembly component";
		stringProto15.RegisterTranslation();
		StringProto stringProto16 = new StringProto();
		stringProto16.Name = "星际组装厂组件描述";
		stringProto16.ZHCN = "使用微型火箭将组件运载到恒星附近并构建星际组装厂的节点和框架。";
		stringProto16.ENUS = "Use a small carrier rocket to the planned Interstellar assembly to form the nodes and frames of Interstellar assembly.";
		stringProto16.RegisterTranslation();
		StringProto stringProto17 = new StringProto();
		stringProto17.Name = "物质解压器运载火箭";
		stringProto17.ZHCN = "物质解压器运载火箭";
		stringProto17.ENUS = "Matter decompressor carrier rocket";
		stringProto17.RegisterTranslation();
		StringProto stringProto18 = new StringProto();
		stringProto18.Name = "物质解压器运载火箭描述";
		stringProto18.ZHCN = "物质解压器相关组件的运载工具。";
		stringProto18.ENUS = "The delivery vehicle for the components of the Matter decompressor.";
		stringProto18.RegisterTranslation();
		StringProto stringProto19 = new StringProto();
		stringProto19.Name = "科学枢纽运载火箭";
		stringProto19.ZHCN = "科学枢纽运载火箭";
		stringProto19.ENUS = "Science nexus carrier rocket";
		stringProto19.RegisterTranslation();
		StringProto stringProto20 = new StringProto();
		stringProto20.Name = "科学枢纽运载火箭描述";
		stringProto20.ZHCN = "科学枢纽相关组件的运载工具。";
		stringProto20.ENUS = "The delivery vehicle for the components of the Science nexus.";
		stringProto20.RegisterTranslation();
	}

	public static void AddTranslateProtoNames2()
	{
		StringProto stringProto = new StringProto();
		stringProto.Name = "谐振发射器运载火箭";
		stringProto.ZHCN = "谐振发射器运载火箭";
		stringProto.ENUS = "Resonant generator carrier rocket";
		stringProto.RegisterTranslation();
		StringProto stringProto2 = new StringProto();
		stringProto2.Name = "谐振发射器运载火箭描述";
		stringProto2.ZHCN = "大量谐振发射器将组成阵列并向全星系广播折跃能量场。";
		stringProto2.ENUS = "A large number of resonant generators will form an array and broadcast the warp energy field to the entire galaxy.";
		stringProto2.RegisterTranslation();
		StringProto stringProto3 = new StringProto();
		stringProto3.Name = "星际组装厂运载火箭";
		stringProto3.ZHCN = "星际组装厂运载火箭";
		stringProto3.ENUS = "Interstellar assembly carrier rocket";
		stringProto3.RegisterTranslation();
		StringProto stringProto4 = new StringProto();
		stringProto4.Name = "星际组装厂运载火箭描述";
		stringProto4.ZHCN = "星际组装厂组件的运载工具。";
		stringProto4.ENUS = "The delivery vehicle of Interstellar assembly components.";
		stringProto4.RegisterTranslation();
		StringProto stringProto5 = new StringProto();
		stringProto5.Name = "晶体重构器运载火箭";
		stringProto5.ZHCN = "晶体重构器运载火箭";
		stringProto5.ENUS = "Crystal reconstructor carrier rocket";
		stringProto5.RegisterTranslation();
		StringProto stringProto6 = new StringProto();
		stringProto6.Name = "晶体重构器运载火箭描述";
		stringProto6.ZHCN = "晶体重构器相关组件的运载工具。";
		stringProto6.ENUS = "The delivery vehicle for the components of the Crystal reconstructor.";
		stringProto6.RegisterTranslation();
		StringProto stringProto7 = new StringProto();
		stringProto7.Name = "铁金属重构装置";
		stringProto7.ZHCN = "铁金属重构装置";
		stringProto7.ENUS = "Iron reconstruct receiver";
		stringProto7.RegisterTranslation();
		StringProto stringProto8 = new StringProto();
		stringProto8.Name = "铜金属重构装置";
		stringProto8.ZHCN = "铜金属重构装置";
		stringProto8.ENUS = "Copper reconstruct receiver";
		stringProto8.RegisterTranslation();
		StringProto stringProto9 = new StringProto();
		stringProto9.Name = "高纯硅重构装置";
		stringProto9.ZHCN = "高纯硅重构装置";
		stringProto9.ENUS = "Silicon reconstruct receiver";
		stringProto9.RegisterTranslation();
		StringProto stringProto10 = new StringProto();
		stringProto10.Name = "钛金属重构装置";
		stringProto10.ZHCN = "钛金属重构装置";
		stringProto10.ENUS = "Titanium reconstruct receiver";
		stringProto10.RegisterTranslation();
		StringProto stringProto11 = new StringProto();
		stringProto11.Name = "单极磁石重构装置";
		stringProto11.ZHCN = "单极磁石重构装置";
		stringProto11.ENUS = "Unipolar magnet receiver";
		stringProto11.RegisterTranslation();
		StringProto stringProto12 = new StringProto();
		stringProto12.Name = "接收重构装置描述";
		stringProto12.ZHCN = "从黑洞中解压出的亚稳态物质被接收后经过处理,重构为可直接使用的稳定材料。";
		stringProto12.ENUS = "The metastable matter decompressed from the black hole is received, processed, and reconstructed into stable material that can be used directly.";
		stringProto12.RegisterTranslation();
		StringProto stringProto13 = new StringProto();
		stringProto13.Name = "晶体接收器";
		stringProto13.ZHCN = "晶体接收器";
		stringProto13.ENUS = "Crystal receiver";
		stringProto13.RegisterTranslation();
		StringProto stringProto14 = new StringProto();
		stringProto14.Name = "晶体接收器描述";
		stringProto14.ZHCN = "从晶体重构器中合成的卡西米尔晶体前导微晶流将在此经过自发β衰变并形成完美的卡西米尔晶体。接收器也可以转而富集该过程的副产物——光栅石。";
		stringProto14.ENUS = "The Casimir crystal precursor crystallite flow synthesized from the Crystal reconstructor will undergo spontaneous β decay here and form perfect casimir crystals. The receivers can also in turn enrich for optical grating crystals, the by-product of the process.";
		stringProto14.RegisterTranslation();
		StringProto stringProto15 = new StringProto();
		stringProto15.Name = "组件集成装置";
		stringProto15.ZHCN = "组件集成装置";
		stringProto15.ENUS = "Component integration station";
		stringProto15.RegisterTranslation();
		StringProto stringProto16 = new StringProto();
		stringProto16.Name = "组件集成装置描述";
		stringProto16.ZHCN = "将星际组装厂的高集成配件进行预解压,形成可被快速组装的多功能集成组件。";
		stringProto16.ENUS = "Pre-decompress the high-integration parts from the Interstellar assembly, to form multi-functional integrated components that can be quickly assembled.";
		stringProto16.RegisterTranslation();
		StringProto stringProto17 = new StringProto();
		stringProto17.Name = "多功能集成组件";
		stringProto17.ZHCN = "多功能集成组件";
		stringProto17.ENUS = "Multi-functional integrated components";
		stringProto17.RegisterTranslation();
		StringProto stringProto18 = new StringProto();
		stringProto18.Name = "多功能集成组件描述";
		stringProto18.ZHCN = "超高集成度使其可以迅速地组装成多种生产建筑和物流组件,却仅占用极小的空间。";
		stringProto18.ENUS = "The high level of integration makes it possible to quickly assemble a variety of production building and logistics components, while occupying very little space.";
		stringProto18.RegisterTranslation();
		StringProto stringProto19 = new StringProto();
		stringProto19.Name = "光栅晶体接收器";
		stringProto19.ZHCN = "光栅晶体接收器";
		stringProto19.ENUS = "Optical crystal receiver";
		stringProto19.RegisterTranslation();
		StringProto stringProto20 = new StringProto();
		stringProto20.Name = "石墨提炼装置";
		stringProto20.ZHCN = "石墨提炼装置";
		stringProto20.ENUS = "Graphite extraction receiver";
		stringProto20.RegisterTranslation();
	}

	public static void AddTranslateProtoNames3()
	{
		StringProto stringProto = new StringProto();
		stringProto.Name = "传送带 快速组装";
		stringProto.ZHCN = "传送带 快速组装";
		stringProto.ENUS = "Conveyor belt - quick assembly";
		stringProto.RegisterTranslation();
		StringProto stringProto2 = new StringProto();
		stringProto2.Name = "分拣器 快速组装";
		stringProto2.ZHCN = "分拣器 快速组装";
		stringProto2.ENUS = "Sorter - quick assembly";
		stringProto2.RegisterTranslation();
		StringProto stringProto3 = new StringProto();
		stringProto3.Name = "配电站 快速组装";
		stringProto3.ZHCN = "配电站 快速组装";
		stringProto3.ENUS = "Substation - quick assembly";
		stringProto3.RegisterTranslation();
		StringProto stringProto4 = new StringProto();
		stringProto4.Name = "制造台 快速组装";
		stringProto4.ZHCN = "制造台 快速组装";
		stringProto4.ENUS = "Assembling machine - quick assembly";
		stringProto4.RegisterTranslation();
		StringProto stringProto5 = new StringProto();
		stringProto5.Name = "位面熔炉 快速组装";
		stringProto5.ZHCN = "位面熔炉 快速组装";
		stringProto5.ENUS = "Plane smelter - quick assembly";
		stringProto5.RegisterTranslation();
		StringProto stringProto6 = new StringProto();
		stringProto6.Name = "化工厂 快速组装";
		stringProto6.ZHCN = "化工厂 快速组装";
		stringProto6.ENUS = "Chemical plant - quick assembly";
		stringProto6.RegisterTranslation();
		StringProto stringProto7 = new StringProto();
		stringProto7.Name = "精炼厂 快速组装";
		stringProto7.ZHCN = "精炼厂 快速组装";
		stringProto7.ENUS = "Refinery - quick assembly";
		stringProto7.RegisterTranslation();
		StringProto stringProto8 = new StringProto();
		stringProto8.Name = "对撞机 快速组装";
		stringProto8.ZHCN = "对撞机 快速组装";
		stringProto8.ENUS = "Collider - quick assembly";
		stringProto8.RegisterTranslation();
		StringProto stringProto9 = new StringProto();
		stringProto9.Name = "研究站 快速组装";
		stringProto9.ZHCN = "研究站 快速组装";
		stringProto9.ENUS = "Lab - quick assembly";
		stringProto9.RegisterTranslation();
		StringProto stringProto10 = new StringProto();
		stringProto10.Name = "人造恒星 快速组装";
		stringProto10.ZHCN = "人造恒星 快速组装";
		stringProto10.ENUS = "Artificial star - quick assembly";
		stringProto10.RegisterTranslation();
		StringProto stringProto11 = new StringProto();
		stringProto11.Name = "行星内物流 快速组装";
		stringProto11.ZHCN = "行星内物流 快速组装";
		stringProto11.ENUS = "Planetary logistics - quick assembly";
		stringProto11.RegisterTranslation();
		StringProto stringProto12 = new StringProto();
		stringProto12.Name = "星际物流 快速组装";
		stringProto12.ZHCN = "星际物流 快速组装";
		stringProto12.ENUS = "Interstellar logistics - quick assembly";
		stringProto12.RegisterTranslation();
		StringProto stringProto13 = new StringProto();
		stringProto13.Name = "快速组装描述";
		stringProto13.ZHCN = "使用多功能集成组件快速递组装成目标物品。";
		stringProto13.ENUS = "Quickly assemble target items using multi-functional integrated components.";
		stringProto13.RegisterTranslation();
	}

	public static void AddTranslateProtoNames4()
	{
		LocalizationModule.RegisterTranslation("每秒伤害gm", "Base Damage", "基础伤害", "");
		LocalizationModule.RegisterTranslation("最大生产速度gm", "Production speed", "生产速度", "");
		LocalizationModule.RegisterTranslation("阶段", "stage", "阶段", "");
		LocalizationModule.RegisterTranslation("连续开火次数", "Aim targets", "射击目标数", "");
		LocalizationModule.RegisterTranslation("最大射程", "Maximum fire range", "最大射程", "");
		LocalizationModule.RegisterTranslation("伤害削减", "Damage reduction", "伤害削减", "");
		LocalizationModule.RegisterTranslation("当前能量水平", "Current capacity", "当前能量水平", "");
		LocalizationModule.RegisterTranslation("请拆除接收站", "Please remove all receivers", "请拆除本星系的接收站", "");
		LocalizationModule.RegisterTranslation("下一阶段所需能量水平", "Next stage required capacity", "下一阶段所需能量水平", "");
		LocalizationModule.RegisterTranslation("冷却及充能时间", "Charge duration", "充能时间", "");
		LocalizationModule.RegisterTranslation("修建进度", "\nProgress to\nnext stage", "修建进度", "");
		LocalizationModule.RegisterTranslation("最终阶段", "Final stage", "最终阶段", "");
		LocalizationModule.RegisterTranslation("节点总数(已规划)gm", "Nodes in total(Planned)", "节点总数(已规划)", "");
		LocalizationModule.RegisterTranslation("请求功率gm", "Requested power", "请求功率", "");
		LocalizationModule.RegisterTranslation("无限制gm", "Infinite", "无限制", "");
		LocalizationModule.RegisterTranslation("警告巨构科技未解锁", "You must unlock the corresponding technology first", "你必须先解锁对应巨构的科技", "");
		LocalizationModule.RegisterTranslation("力场发生器", "Force field generator", "力场发生器", "");
		LocalizationModule.RegisterTranslation("力场发生器描述", "With the help of the gravity genera