Decompiled source of FractionateUniverse v1.0.6

FractionateEverything.dll

Decompiled 3 months ago
using System;
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 BepInEx;
using BepInEx.Configuration;
using CommonAPI;
using CommonAPI.Systems;
using CommonAPI.Systems.ModLocalization;
using HarmonyLib;
using UnityEngine;
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: AssemblyVersion("1.0.0.0")]
namespace FractionateEverything;

[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[CommonAPISubmoduleDependency(new string[] { "ProtoRegistry", "TabSystem", "LocalizationModule" })]
[BepInPlugin("GniMaerd.DSP.plugin.FractionateEverything", "FractionateEverything", "1.0")]
public class FractionateEverything : BaseUnityPlugin
{
	private static ConfigEntry<int> Difficulty;

	private static ConfigEntry<int> DefaultPage;

	private static int ratio;

	private static int pagePlus;

	private AssetBundle ab;

	public static string GUID = "GniMaerd.DSP.plugin.FractionateEverything";

	public static string MODID = "FractionateEverything";

	public static ResourceData resources;

	private void Awake()
	{
		//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cd: Expected O, but got Unknown
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Expected O, but got Unknown
		//IL_0076: Unknown result type (might be due to invalid IL or missing references)
		//IL_0080: Expected O, but got Unknown
		try
		{
			using (ProtoRegistry.StartModLoad(GUID))
			{
				string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
				resources = new ResourceData(GUID, "FracTabIcon", directoryName);
				resources.LoadAssetBundle("fractabicon");
				ProtoRegistry.AddResource(resources);
				pagePlus = 1000 * (TabSystem.RegisterTab(MODID + ":" + MODID + "Tab", new TabData("FractionateTab", "Assets/FracTabIcon/add2")) - 3);
			}
		}
		catch (Exception)
		{
			pagePlus = 1000 * (TabSystem.RegisterTab(MODID + ":" + MODID + "Tab", new TabData("FractionateTab", "Assets/FracTabIcon/add2")) - 3);
		}
		Difficulty = ((BaseUnityPlugin)this).Config.Bind<int>("config", "FractionateDifficulty", 3, "Lower means easier and faster to fractionate (1-5). 值越小代表越简单,能更高效地分馏出产物(1-5)。");
		List<int> list = new List<int> { 1, 3, 5, 8, 10 };
		int num = Difficulty.Value - 1;
		num = ((num > 4) ? 4 : num);
		num = ((num >= 0) ? num : 0);
		ratio = list[num];
		ab = AssetBundle.LoadFromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("FractionateEverything.fracicons"));
		AddTranslate();
		LDBTool.PostAddDataAction = (Action)Delegate.Combine(LDBTool.PostAddDataAction, new Action(AddFracRecipes));
		Harmony.CreateAndPatchAll(typeof(FractionateEverything), (string)null);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(GameHistoryData), "Import")]
	public static void ImportPostPatch()
	{
		ReloadFractionateNeeds();
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(GameHistoryData), "UnlockRecipe")]
	public static void UnlockRecipePostPatch()
	{
		ReloadFractionateNeeds();
	}

	private static void ReloadFractionateNeeds()
	{
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Invalid comparison between Unknown and I4
		RecipeProto[] dataArray = ((ProtoSet<RecipeProto>)(object)LDB.recipes).dataArray;
		List<RecipeProto> list = new List<RecipeProto>();
		List<int> list2 = new List<int>();
		for (int i = 0; i < dataArray.Length; i++)
		{
			if ((int)dataArray[i].Type == 8 && GameMain.history.RecipeUnlocked(((Proto)dataArray[i]).ID))
			{
				list.Add(dataArray[i]);
				list2.Add(dataArray[i].Items[0]);
			}
		}
		RecipeProto.fractionatorRecipes = list.ToArray();
		RecipeProto.fractionatorNeeds = list2.ToArray();
	}

	private void AddFracRecipes()
	{
		RecipeProto val = ((ProtoSet<RecipeProto>)(object)LDB.recipes).Select(115);
		RecipeProto val2 = MethedEx.Copy<RecipeProto>(val);
		string text = "磁铁";
		string text2 = "磁线圈";
		((Proto)val2).ID = 481;
		((Proto)val2).Name = "c1r1配方";
		((Proto)val2).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val2.Items = new int[1] { 1102 };
		val2.ItemCounts = new int[1] { 5 * ratio };
		val2.Results = new int[1] { 1202 };
		val2.ResultCounts = new int[1] { 1 };
		val2.GridIndex = pagePlus + 3101;
		val2.Description = "c1r1描述";
		val2.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val2.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1134);
		Traverse.Create((object)val2).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3101"));
		ItemProto val3 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1202);
		val3.recipes.Add(val2);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val2);
		RecipeProto val4 = MethedEx.Copy<RecipeProto>(val);
		text = "磁线圈";
		text2 = "电动机";
		((Proto)val4).ID = 482;
		((Proto)val4).Name = "c1r2配方";
		((Proto)val4).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val4.Items = new int[1] { 1202 };
		val4.ItemCounts = new int[1] { 20 * ratio };
		val4.Results = new int[1] { 1203 };
		val4.ResultCounts = new int[1] { 1 };
		val4.GridIndex = pagePlus + 3201;
		val4.Description = "c1r2描述";
		val4.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val4.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1701);
		Traverse.Create((object)val4).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3201"));
		ItemProto val5 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1203);
		val5.recipes.Add(val4);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val4);
		RecipeProto val6 = MethedEx.Copy<RecipeProto>(val);
		text = "电动机";
		text2 = "电磁涡轮";
		((Proto)val6).ID = 483;
		((Proto)val6).Name = "c1r3配方";
		((Proto)val6).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val6.Items = new int[1] { 1203 };
		val6.ItemCounts = new int[1] { 30 * ratio };
		val6.Results = new int[1] { 1204 };
		val6.ResultCounts = new int[1] { 1 };
		val6.GridIndex = pagePlus + 3301;
		val6.Description = "c1r3描述";
		val6.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val6.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1702);
		Traverse.Create((object)val6).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3301"));
		ItemProto val7 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1204);
		val7.recipes.Add(val6);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val6);
		RecipeProto val8 = MethedEx.Copy<RecipeProto>(val);
		text = "电磁涡轮";
		text2 = "超级磁场环";
		((Proto)val8).ID = 484;
		((Proto)val8).Name = "c1r4配方";
		((Proto)val8).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val8.Items = new int[1] { 1204 };
		val8.ItemCounts = new int[1] { 40 * ratio };
		val8.Results = new int[1] { 1205 };
		val8.ResultCounts = new int[1] { 1 };
		val8.GridIndex = pagePlus + 3401;
		val8.Description = "c1r4描述";
		val8.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val8.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1711);
		Traverse.Create((object)val8).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3401"));
		ItemProto val9 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1205);
		val9.recipes.Add(val8);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val8);
		RecipeProto val10 = MethedEx.Copy<RecipeProto>(val);
		text = "粒子容器";
		text2 = "奇异物质";
		((Proto)val10).ID = 485;
		((Proto)val10).Name = "c1r5配方";
		((Proto)val10).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val10.Items = new int[1] { 1206 };
		val10.ItemCounts = new int[1] { 80 * ratio };
		val10.Results = new int[1] { 1127 };
		val10.ResultCounts = new int[1] { 1 };
		val10.GridIndex = pagePlus + 3501;
		val10.Description = "c1r5描述";
		val10.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val10.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1143);
		Traverse.Create((object)val10).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3501"));
		ItemProto val11 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1127);
		val11.recipes.Add(val10);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val10);
		RecipeProto val12 = MethedEx.Copy<RecipeProto>(val);
		text = "奇异物质";
		text2 = "引力透镜";
		((Proto)val12).ID = 486;
		((Proto)val12).Name = "c1r6配方";
		((Proto)val12).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val12.Items = new int[1] { 1127 };
		val12.ItemCounts = new int[1] { 50 * ratio };
		val12.Results = new int[1] { 1209 };
		val12.ResultCounts = new int[1] { 1 };
		val12.GridIndex = pagePlus + 3601;
		val12.Description = "c1r6描述";
		val12.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val12.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1704);
		Traverse.Create((object)val12).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3601"));
		ItemProto val13 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1209);
		val13.recipes.Add(val12);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val12);
		RecipeProto val14 = MethedEx.Copy<RecipeProto>(val);
		text = "湮灭约束球";
		text2 = "人造恒星";
		((Proto)val14).ID = 487;
		((Proto)val14).Name = "c1r7配方";
		((Proto)val14).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val14.Items = new int[1] { 1403 };
		val14.ItemCounts = new int[1] { 300 * ratio };
		val14.Results = new int[1] { 2210 };
		val14.ResultCounts = new int[1] { 1 };
		val14.GridIndex = pagePlus + 3701;
		val14.Description = "c1r7描述";
		val14.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val14.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1144);
		Traverse.Create((object)val14).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3701"));
		ItemProto val15 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2210);
		val15.recipes.Add(val14);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val14);
		RecipeProto val16 = MethedEx.Copy<RecipeProto>(val);
		text = "钛块";
		text2 = "钛合金";
		((Proto)val16).ID = 488;
		((Proto)val16).Name = "c2r1配方";
		((Proto)val16).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val16.Items = new int[1] { 1106 };
		val16.ItemCounts = new int[1] { 20 * ratio };
		val16.Results = new int[1] { 1107 };
		val16.ResultCounts = new int[1] { 1 };
		val16.GridIndex = pagePlus + 3102;
		val16.Description = "c2r1描述";
		val16.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val16.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1414);
		Traverse.Create((object)val16).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3102"));
		ItemProto val17 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1107);
		val17.recipes.Add(val16);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val16);
		RecipeProto val18 = MethedEx.Copy<RecipeProto>(val);
		text = "钛合金";
		text2 = "框架材料";
		((Proto)val18).ID = 489;
		((Proto)val18).Name = "c2r2配方";
		((Proto)val18).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val18.Items = new int[1] { 1107 };
		val18.ItemCounts = new int[1] { 40 * ratio };
		val18.Results = new int[1] { 1125 };
		val18.ResultCounts = new int[1] { 1 };
		val18.GridIndex = pagePlus + 3202;
		val18.Description = "c2r2描述";
		val18.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val18.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1521);
		Traverse.Create((object)val18).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3202"));
		ItemProto val19 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1125);
		val19.recipes.Add(val18);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val18);
		RecipeProto val20 = MethedEx.Copy<RecipeProto>(val);
		text = "框架材料";
		text2 = "戴森球组件";
		((Proto)val20).ID = 490;
		((Proto)val20).Name = "c2r3配方";
		((Proto)val20).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val20.Items = new int[1] { 1125 };
		val20.ItemCounts = new int[1] { 100 * ratio };
		val20.Results = new int[1] { 1502 };
		val20.ResultCounts = new int[1] { 1 };
		val20.GridIndex = pagePlus + 3302;
		val20.Description = "c2r3描述";
		val20.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val20.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1521);
		Traverse.Create((object)val20).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3302"));
		ItemProto val21 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1502);
		val21.recipes.Add(val20);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val20);
		RecipeProto val22 = MethedEx.Copy<RecipeProto>(val);
		text = "电路板";
		text2 = "处理器";
		((Proto)val22).ID = 491;
		((Proto)val22).Name = "c2r4配方";
		((Proto)val22).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val22.Items = new int[1] { 1301 };
		val22.ItemCounts = new int[1] { 20 * ratio };
		val22.Results = new int[1] { 1303 };
		val22.ResultCounts = new int[1] { 1 };
		val22.GridIndex = pagePlus + 3402;
		val22.Description = "c2r4描述";
		val22.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val22.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1302);
		Traverse.Create((object)val22).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3402"));
		ItemProto val23 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1303);
		val23.recipes.Add(val22);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val22);
		RecipeProto val24 = MethedEx.Copy<RecipeProto>(val);
		text = "处理器";
		text2 = "量子芯片";
		((Proto)val24).ID = 492;
		((Proto)val24).Name = "c2r5配方";
		((Proto)val24).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val24.Items = new int[1] { 1303 };
		val24.ItemCounts = new int[1] { 160 * ratio };
		val24.Results = new int[1] { 1305 };
		val24.ResultCounts = new int[1] { 1 };
		val24.GridIndex = pagePlus + 3502;
		val24.Description = "c2r5描述";
		val24.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val24.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1303);
		Traverse.Create((object)val24).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3502"));
		ItemProto val25 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1305);
		val25.recipes.Add(val24);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val24);
		RecipeProto val26 = MethedEx.Copy<RecipeProto>(val);
		text = "低速传送带";
		text2 = "高速传送带";
		((Proto)val26).ID = 493;
		((Proto)val26).Name = "c2r6配方";
		((Proto)val26).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val26.Items = new int[1] { 2001 };
		val26.ItemCounts = new int[1] { 4 * ratio };
		val26.Results = new int[1] { 2002 };
		val26.ResultCounts = new int[1] { 1 };
		val26.GridIndex = pagePlus + 3602;
		val26.Description = "c2r6描述";
		val26.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val26.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1603);
		Traverse.Create((object)val26).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3602"));
		ItemProto val27 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2002);
		val27.recipes.Add(val26);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val26);
		RecipeProto val28 = MethedEx.Copy<RecipeProto>(val);
		text = "高速传送带";
		text2 = "极速传送带";
		((Proto)val28).ID = 494;
		((Proto)val28).Name = "c2r7配方";
		((Proto)val28).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val28.Items = new int[1] { 2002 };
		val28.ItemCounts = new int[1] { 4 * ratio };
		val28.Results = new int[1] { 2003 };
		val28.ResultCounts = new int[1] { 1 };
		val28.GridIndex = pagePlus + 3702;
		val28.Description = "c2r7描述";
		val28.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val28.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1604);
		Traverse.Create((object)val28).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3702"));
		ItemProto val29 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2003);
		val29.recipes.Add(val28);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val28);
		RecipeProto val30 = MethedEx.Copy<RecipeProto>(val);
		text = "玻璃";
		text2 = "光子合并器";
		((Proto)val30).ID = 495;
		((Proto)val30).Name = "c3r1配方";
		((Proto)val30).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val30.Items = new int[1] { 1110 };
		val30.ItemCounts = new int[1] { 40 * ratio };
		val30.Results = new int[1] { 1404 };
		val30.ResultCounts = new int[1] { 1 };
		val30.GridIndex = pagePlus + 3103;
		val30.Description = "c3r1描述";
		val30.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val30.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1502);
		Traverse.Create((object)val30).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3103"));
		ItemProto val31 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1404);
		val31.recipes.Add(val30);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val30);
		RecipeProto val32 = MethedEx.Copy<RecipeProto>(val);
		text = "光子合并器";
		text2 = "太阳帆";
		((Proto)val32).ID = 496;
		((Proto)val32).Name = "c3r2配方";
		((Proto)val32).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val32.Items = new int[1] { 1404 };
		val32.ItemCounts = new int[1] { 40 * ratio };
		val32.Results = new int[1] { 1501 };
		val32.ResultCounts = new int[1] { 1 };
		val32.GridIndex = pagePlus + 3203;
		val32.Description = "c3r2描述";
		val32.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val32.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1503);
		Traverse.Create((object)val32).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3203"));
		ItemProto val33 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1501);
		val33.recipes.Add(val32);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val32);
		RecipeProto val34 = MethedEx.Copy<RecipeProto>(val);
		text = "高能石墨";
		text2 = "石墨烯";
		((Proto)val34).ID = 497;
		((Proto)val34).Name = "c3r3配方";
		((Proto)val34).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val34.Items = new int[1] { 1109 };
		val34.ItemCounts = new int[1] { 40 * ratio };
		val34.Results = new int[1] { 1123 };
		val34.ResultCounts = new int[1] { 1 };
		val34.GridIndex = pagePlus + 3303;
		val34.Description = "c3r3描述";
		val34.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val34.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1131);
		Traverse.Create((object)val34).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3303"));
		ItemProto val35 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1123);
		val35.recipes.Add(val34);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val34);
		RecipeProto val36 = MethedEx.Copy<RecipeProto>(val);
		text = "石墨烯";
		text2 = "碳纳米管";
		((Proto)val36).ID = 498;
		((Proto)val36).Name = "c3r4配方";
		((Proto)val36).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val36.Items = new int[1] { 1123 };
		val36.ItemCounts = new int[1] { 50 * ratio };
		val36.Results = new int[1] { 1124 };
		val36.ResultCounts = new int[1] { 1 };
		val36.GridIndex = pagePlus + 3403;
		val36.Description = "c3r4描述";
		val36.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val36.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1132);
		Traverse.Create((object)val36).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3403"));
		ItemProto val37 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1124);
		val37.recipes.Add(val36);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val36);
		RecipeProto val38 = MethedEx.Copy<RecipeProto>(val);
		text = "碳纳米管";
		text2 = "粒子宽带";
		((Proto)val38).ID = 499;
		((Proto)val38).Name = "c3r5配方";
		((Proto)val38).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val38.Items = new int[1] { 1124 };
		val38.ItemCounts = new int[1] { 125 * ratio };
		val38.Results = new int[1] { 1402 };
		val38.ResultCounts = new int[1] { 1 };
		val38.GridIndex = pagePlus + 3503;
		val38.Description = "c3r5描述";
		val38.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val38.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1133);
		Traverse.Create((object)val38).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3503"));
		ItemProto val39 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1402);
		val39.recipes.Add(val38);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val38);
		RecipeProto val40 = MethedEx.Copy<RecipeProto>(val);
		text = "低速分拣器";
		text2 = "高速分拣器";
		((Proto)val40).ID = 500;
		((Proto)val40).Name = "c3r6配方";
		((Proto)val40).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val40.Items = new int[1] { 2011 };
		val40.ItemCounts = new int[1] { 4 * ratio };
		val40.Results = new int[1] { 2012 };
		val40.ResultCounts = new int[1] { 1 };
		val40.GridIndex = pagePlus + 3603;
		val40.Description = "c3r6描述";
		val40.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val40.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1602);
		Traverse.Create((object)val40).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3603"));
		ItemProto val41 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2012);
		val41.recipes.Add(val40);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val40);
		RecipeProto val42 = MethedEx.Copy<RecipeProto>(val);
		text = "高速分拣器";
		text2 = "极速分拣器";
		((Proto)val42).ID = 501;
		((Proto)val42).Name = "c3r7配方";
		((Proto)val42).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val42.Items = new int[1] { 2012 };
		val42.ItemCounts = new int[1] { 4 * ratio };
		val42.Results = new int[1] { 2013 };
		val42.ResultCounts = new int[1] { 1 };
		val42.GridIndex = pagePlus + 3703;
		val42.Description = "c3r7描述";
		val42.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val42.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1603);
		Traverse.Create((object)val42).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3703"));
		ItemProto val43 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2013);
		val43.recipes.Add(val42);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val42);
		RecipeProto val44 = MethedEx.Copy<RecipeProto>(val);
		text = "原油";
		text2 = "精炼油";
		((Proto)val44).ID = 502;
		((Proto)val44).Name = "c4r1配方";
		((Proto)val44).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val44.Items = new int[1] { 1007 };
		val44.ItemCounts = new int[1] { 10 * ratio };
		val44.Results = new int[1] { 1114 };
		val44.ResultCounts = new int[1] { 1 };
		val44.GridIndex = pagePlus + 3104;
		val44.Description = "c4r1描述";
		val44.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val44.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1102);
		Traverse.Create((object)val44).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3104"));
		ItemProto val45 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1114);
		val45.recipes.Add(val44);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val44);
		RecipeProto val46 = MethedEx.Copy<RecipeProto>(val);
		text = "精炼油";
		text2 = "塑料";
		((Proto)val46).ID = 503;
		((Proto)val46).Name = "c4r2配方";
		((Proto)val46).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val46.Items = new int[1] { 1114 };
		val46.ItemCounts = new int[1] { 20 * ratio };
		val46.Results = new int[1] { 1115 };
		val46.ResultCounts = new int[1] { 1 };
		val46.GridIndex = pagePlus + 3204;
		val46.Description = "c4r2描述";
		val46.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val46.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1121);
		Traverse.Create((object)val46).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3204"));
		ItemProto val47 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1115);
		val47.recipes.Add(val46);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val46);
		RecipeProto val48 = MethedEx.Copy<RecipeProto>(val);
		text = "塑料";
		text2 = "有机晶体";
		((Proto)val48).ID = 504;
		((Proto)val48).Name = "c4r3配方";
		((Proto)val48).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val48.Items = new int[1] { 1115 };
		val48.ItemCounts = new int[1] { 80 * ratio };
		val48.Results = new int[1] { 1117 };
		val48.ResultCounts = new int[1] { 1 };
		val48.GridIndex = pagePlus + 3304;
		val48.Description = "c4r3描述";
		val48.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val48.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1122);
		Traverse.Create((object)val48).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3304"));
		ItemProto val49 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1117);
		val49.recipes.Add(val48);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val48);
		RecipeProto val50 = MethedEx.Copy<RecipeProto>(val);
		text = "有机晶体";
		text2 = "钛晶石";
		((Proto)val50).ID = 505;
		((Proto)val50).Name = "c4r4配方";
		((Proto)val50).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val50.Items = new int[1] { 1117 };
		val50.ItemCounts = new int[1] { 50 * ratio };
		val50.Results = new int[1] { 1118 };
		val50.ResultCounts = new int[1] { 1 };
		val50.GridIndex = pagePlus + 3404;
		val50.Description = "c4r4描述";
		val50.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val50.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1123);
		Traverse.Create((object)val50).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3404"));
		ItemProto val51 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1118);
		val51.recipes.Add(val50);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val50);
		RecipeProto val52 = MethedEx.Copy<RecipeProto>(val);
		text = "电弧熔炉";
		text2 = "位面熔炉";
		((Proto)val52).ID = 506;
		((Proto)val52).Name = "c4r5配方";
		((Proto)val52).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val52.Items = new int[1] { 2302 };
		val52.ItemCounts = new int[1] { 100 * ratio };
		val52.Results = new int[1] { 2315 };
		val52.ResultCounts = new int[1] { 1 };
		val52.GridIndex = pagePlus + 3504;
		val52.Description = "c4r5描述";
		val52.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val52.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1417);
		Traverse.Create((object)val52).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3504"));
		ItemProto val53 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2315);
		val53.recipes.Add(val52);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val52);
		RecipeProto val54 = MethedEx.Copy<RecipeProto>(val);
		text = "行星内物流运输站";
		text2 = "星际物流运输站";
		((Proto)val54).ID = 507;
		((Proto)val54).Name = "c4r6配方";
		((Proto)val54).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val54.Items = new int[1] { 2103 };
		val54.ItemCounts = new int[1] { 200 * ratio };
		val54.Results = new int[1] { 2104 };
		val54.ResultCounts = new int[1] { 1 };
		val54.GridIndex = pagePlus + 3604;
		val54.Description = "c4r6描述";
		val54.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val54.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1605);
		Traverse.Create((object)val54).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3604"));
		ItemProto val55 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2104);
		val55.recipes.Add(val54);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val54);
		RecipeProto val56 = MethedEx.Copy<RecipeProto>(val);
		text = "星际物流运输站";
		text2 = "轨道采集器";
		((Proto)val56).ID = 508;
		((Proto)val56).Name = "c4r7配方";
		((Proto)val56).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val56.Items = new int[1] { 2104 };
		val56.ItemCounts = new int[1] { 200 * ratio };
		val56.Results = new int[1] { 2105 };
		val56.ResultCounts = new int[1] { 1 };
		val56.GridIndex = pagePlus + 3704;
		val56.Description = "c4r7描述";
		val56.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val56.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1606);
		Traverse.Create((object)val56).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3704"));
		ItemProto val57 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2105);
		val57.recipes.Add(val56);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val56);
		RecipeProto val58 = MethedEx.Copy<RecipeProto>(val);
		text = "增产剂 Mk.I";
		text2 = "增产剂 Mk.II";
		((Proto)val58).ID = 509;
		((Proto)val58).Name = "c5r1配方";
		((Proto)val58).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val58.Items = new int[1] { 1141 };
		val58.ItemCounts = new int[1] { 20 * ratio };
		val58.Results = new int[1] { 1142 };
		val58.ResultCounts = new int[1] { 1 };
		val58.GridIndex = pagePlus + 3105;
		val58.Description = "c5r1描述";
		val58.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val58.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1152);
		Traverse.Create((object)val58).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3105"));
		ItemProto val59 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1142);
		val59.recipes.Add(val58);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val58);
		RecipeProto val60 = MethedEx.Copy<RecipeProto>(val);
		text = "增产剂 Mk.II";
		text2 = "增产剂 Mk.III";
		((Proto)val60).ID = 510;
		((Proto)val60).Name = "c5r2配方";
		((Proto)val60).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val60.Items = new int[1] { 1142 };
		val60.ItemCounts = new int[1] { 20 * ratio };
		val60.Results = new int[1] { 1143 };
		val60.ResultCounts = new int[1] { 1 };
		val60.GridIndex = pagePlus + 3205;
		val60.Description = "c5r2描述";
		val60.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val60.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1153);
		Traverse.Create((object)val60).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3205"));
		ItemProto val61 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(1143);
		val61.recipes.Add(val60);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val60);
		RecipeProto val62 = MethedEx.Copy<RecipeProto>(val);
		text = "推进器";
		text2 = "物流运输机";
		((Proto)val62).ID = 511;
		((Proto)val62).Name = "c5r3配方";
		((Proto)val62).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val62.Items = new int[1] { 1405 };
		val62.ItemCounts = new int[1] { 40 * ratio };
		val62.Results = new int[1] { 5001 };
		val62.ResultCounts = new int[1] { 1 };
		val62.GridIndex = pagePlus + 3305;
		val62.Description = "c5r3描述";
		val62.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val62.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1604);
		Traverse.Create((object)val62).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3305"));
		ItemProto val63 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(5001);
		val63.recipes.Add(val62);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val62);
		RecipeProto val64 = MethedEx.Copy<RecipeProto>(val);
		text = "物流运输机";
		text2 = "星际物流运输船";
		((Proto)val64).ID = 512;
		((Proto)val64).Name = "c5r4配方";
		((Proto)val64).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val64.Items = new int[1] { 5001 };
		val64.ItemCounts = new int[1] { 100 * ratio };
		val64.Results = new int[1] { 5002 };
		val64.ResultCounts = new int[1] { 1 };
		val64.GridIndex = pagePlus + 3405;
		val64.Description = "c5r4描述";
		val64.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val64.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1605);
		Traverse.Create((object)val64).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3405"));
		ItemProto val65 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(5002);
		val65.recipes.Add(val64);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val64);
		RecipeProto val66 = MethedEx.Copy<RecipeProto>(val);
		text = "制造台 Mk.I";
		text2 = "制造台 Mk.II";
		((Proto)val66).ID = 514;
		((Proto)val66).Name = "c5r6配方";
		((Proto)val66).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val66.Items = new int[1] { 2303 };
		val66.ItemCounts = new int[1] { 50 * ratio };
		val66.Results = new int[1] { 2304 };
		val66.ResultCounts = new int[1] { 1 };
		val66.GridIndex = pagePlus + 3605;
		val66.Description = "c5r6描述";
		val66.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val66.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1202);
		Traverse.Create((object)val66).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3605"));
		ItemProto val67 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2304);
		val67.recipes.Add(val66);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val66);
		RecipeProto val68 = MethedEx.Copy<RecipeProto>(val);
		text = "制造台 Mk.II";
		text2 = "制造台 Mk.III";
		((Proto)val68).ID = 515;
		((Proto)val68).Name = "c5r7配方";
		((Proto)val68).name = Localization.Translate(text2) + Localization.Translate("分馏f");
		val68.Items = new int[1] { 2304 };
		val68.ItemCounts = new int[1] { 80 * ratio };
		val68.Results = new int[1] { 2305 };
		val68.ResultCounts = new int[1] { 1 };
		val68.GridIndex = pagePlus + 3705;
		val68.Description = "c5r7描述";
		val68.description = Localization.Translate("从f") + Localization.Translate(text) + Localization.Translate("中分馏出f") + Localization.Translate(text2) + Localization.Translate("。f");
		val68.preTech = ((ProtoSet<TechProto>)(object)LDB.techs).Select(1203);
		Traverse.Create((object)val68).Field("_iconSprite").SetValue((object)ab.LoadAsset<Sprite>("fi3705"));
		ItemProto val69 = ((ProtoSet<ItemProto>)(object)LDB.items).Select(2305);
		val69.recipes.Add(val68);
		LDBTool.PostAddProto((ProtoType)6, (Proto)(object)val68);
	}

	private void AddTranslate()
	{
		LocalizationModule.RegisterTranslation("分馏f", "Fractionation", "分馏", "Fractionation");
		LocalizationModule.RegisterTranslation("从f", "Fractionate", "从", "Fractionate");
		LocalizationModule.RegisterTranslation("中分馏出f", "to", "中分馏出", "to");
		LocalizationModule.RegisterTranslation("。f", ".", "。", ".");
		LocalizationModule.RegisterTranslation("FractionateTab", "Fract/Rods", "分馏", "Fract/Rods");
	}
}