Decompiled source of BlackBox cn v1.0.4

blackboxcn.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("blackboxcn")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("blackboxcn")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("230de607-2e44-411d-9009-eb84a7543d63")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[BepInPlugin("BlackBox.Chinese.Patch", "BlackBox Chinese Patch", "1.0.4")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class BlackBoxChinesePatch : BaseUnityPlugin
{
	[CompilerGenerated]
	private sealed class <DelayedInit>d__2 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public BlackBoxChinesePatch <>4__this;

		private Type <monitorTestType>5__1;

		private MethodInfo <setTextMethod>5__2;

		private Exception <e>5__3;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DelayedInit>d__2(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<monitorTestType>5__1 = null;
			<setTextMethod>5__2 = null;
			<e>5__3 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(3f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				try
				{
					<monitorTestType>5__1 = Type.GetType("Blackbox.MonitorTest");
					if (<monitorTestType>5__1 == null)
					{
						<monitorTestType>5__1 = <>4__this.FindMonitorTestClass();
						if (<monitorTestType>5__1 == null)
						{
							((BaseUnityPlugin)<>4__this).Logger.LogError((object)"[BlackBox中文补丁] 未找到类!");
							return false;
						}
					}
					<setTextMethod>5__2 = <monitorTestType>5__1.GetMethod("setText", BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Public, null, new Type[2]
					{
						typeof(string),
						typeof(bool)
					}, null);
					if (<setTextMethod>5__2 == null)
					{
						<setTextMethod>5__2 = <monitorTestType>5__1.GetMethod("setText", BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Public, null, new Type[1] { typeof(string) }, null);
					}
					if (<setTextMethod>5__2 != null)
					{
						new Harmony("BlackBox.Chinese.Patch").Patch((MethodBase)<setTextMethod>5__2, new HarmonyMethod(typeof(BlackBoxChinesePatch).GetMethod("SetText_Prefix", BindingFlags.Static | BindingFlags.NonPublic)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
						((BaseUnityPlugin)<>4__this).Logger.LogInfo((object)"[BlackBox中文补丁] 汉化补丁加载成功!");
					}
					else
					{
						((BaseUnityPlugin)<>4__this).Logger.LogError((object)"[BlackBox中文补丁] 未找到方法!");
					}
					<monitorTestType>5__1 = null;
					<setTextMethod>5__2 = null;
				}
				catch (Exception ex)
				{
					<e>5__3 = ex;
					((BaseUnityPlugin)<>4__this).Logger.LogError((object)("[BlackBox中文补丁] 初始化异常:" + <e>5__3.Message));
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private static readonly Dictionary<string, string> TextMap;

	private void Awake()
	{
		((BaseUnityPlugin)this).Logger.LogInfo((object)"[BlackBox中文补丁] 启动,延迟3秒初始化...");
		((MonoBehaviour)this).StartCoroutine(DelayedInit());
	}

	[IteratorStateMachine(typeof(<DelayedInit>d__2))]
	private IEnumerator DelayedInit()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <DelayedInit>d__2(0)
		{
			<>4__this = this
		};
	}

	private Type FindMonitorTestClass()
	{
		Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
		foreach (Assembly assembly in assemblies)
		{
			try
			{
				Type[] types = assembly.GetTypes();
				foreach (Type type in types)
				{
					if (type.Name == "MonitorTest" && type.IsSubclassOf(typeof(MonoBehaviour)))
					{
						return type;
					}
				}
			}
			catch
			{
			}
		}
		return null;
	}

	private static bool SetText_Prefix(ref string text)
	{
		if (string.IsNullOrEmpty(text))
		{
			return true;
		}
		foreach (KeyValuePair<string, string> item in TextMap)
		{
			text = text.Replace(item.Key, item.Value);
		}
		return true;
	}

	static BlackBoxChinesePatch()
	{
		Dictionary<string, string> dictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
		dictionary["DAMAGE DONE TO ITEMS"] = "物品损坏列表(疯狂指责)";
		dictionary["DESTROYED"] = "已销毁";
		dictionary["TOTAL"] = "总计";
		dictionary["LEFT"] = "剩余";
		dictionary["UNKNOWN"] = "未知";
		dictionary["EXTRACTED"] = "已提取";
		dictionary["ITEM(S)"] = " 件";
		dictionary["LOST"] = "损失";
		dictionary["IN VALUE WITH"] = "价值包含";
		dictionary["ITEM(S) DESTROYED"] = "件物品已销毁";
		dictionary["DISCOVERED"] = "已发现";
		dictionary["OUT OF"] = "件,总计";
		dictionary["ARCTIC ERASER"] = "北极橡皮擦";
		dictionary["ARCTIC FAN"] = "北极风扇";
		dictionary["ARCTIC FLAMETHROWER"] = "北极火焰喷射器";
		dictionary["ARCTIC PILLS"] = "北极药剂";
		dictionary["ARCTIC URANIUM PETRI DISH"] = "北极铀培养皿";
		dictionary["ARCTIC FIRE EXTINGUISHER"] = "北极灭火器";
		dictionary["ARCTIC CREATURE LEG"] = "北极生物腿骨";
		dictionary["ARCTIC CRYO POD"] = "北极冷冻舱";
		dictionary["ARCTIC FLASHLIGHT"] = "北极手电筒";
		dictionary["ARCTIC GUITAR"] = "北极吉他";
		dictionary["ARCTIC HDD"] = "北极硬盘";
		dictionary["ARCTIC HEAVY WATER"] = "北极重水";
		dictionary["ARCTIC ICE BLOCK"] = "北极冰块";
		dictionary["ARCTIC ICE SAW"] = "北极冰锯";
		dictionary["ARCTIC ICEPICK"] = "北极冰镐";
		dictionary["ARCTIC JACKHAMMER"] = "北极凿岩机";
		dictionary["ARCTIC KEYCARD"] = "北极钥匙卡";
		dictionary["ARCTIC LAPTOP"] = "北极笔记本电脑";
		dictionary["ARCTIC PHONE"] = "北极电话";
		dictionary["ARCTIC PROPANE TANK"] = "北极丙烷罐";
		dictionary["ARCTIC SAMPLE"] = "北极样品";
		dictionary["ARCTIC SAMPLE COOLER WIDE"] = "北极宽体样品冷藏箱";
		dictionary["ARCTIC SAMPLE COOLER"] = "北极样品冷藏箱";
		dictionary["ARCTIC SAMPLE SIX PACK"] = "北极样品六联包";
		dictionary["ARCTIC SCALE"] = "北极天平";
		dictionary["ARCTIC SCIENCE STATION"] = "北极科学站";
		dictionary["ARCTIC SERVER RACK"] = "北极服务器机架";
		dictionary["ARCTIC SMARTWATCH"] = "北极智能手表";
		dictionary["ARCTIC SNOW BIKE"] = "北极雪地摩托";
		dictionary["ARCTIC STAPLER"] = "北极订书机";
		dictionary["ARCTIC USB STICK"] = "北极U盘";
		dictionary["ARCTIC VHS"] = "北极录像带";
		dictionary["ARCTIC COFFEE CUP"] = "北极咖啡杯";
		dictionary["ARCTIC COMPUTER"] = "北极计算机";
		dictionary["ARCTIC CENTRIFUGE"] = "北极离心机";
		dictionary["ARCTIC CAMERA"] = "北极照相机";
		dictionary["ARCTIC BONSAI"] = "北极盆栽";
		dictionary["ARCTIC CALCULATOR"] = "北极计算器";
		dictionary["ARCTIC BIG SAMPLE"] = "北极大号样品";
		dictionary["ARCTIC 3D PRINTER"] = "北极3D打印机";
		dictionary["ARCTIC BARREL"] = "北极桶";
		dictionary["MANOR INSTRUMENT"] = "庄园乐器";
		dictionary["MANOR TELEVISION"] = "庄园电视机";
		dictionary["MANOR ANIMAL CRATE"] = "庄园动物箱";
		dictionary["MANOR BOTTLE"] = "庄园酒瓶";
		dictionary["MANOR CLOWN"] = "庄园小丑玩偶";
		dictionary["MANOR COFFIN"] = "庄园棺材";
		dictionary["MANOR DIAMOND DISPLAY"] = "庄园钻石陈列品";
		dictionary["MANOR DINOSAUR"] = "庄园恐龙摆件";
		dictionary["MANOR DOLL"] = "庄园人偶";
		dictionary["MANOR EMERALD BRACELET"] = "庄园翡翠手镯";
		dictionary["MANOR FROG"] = "庄园青蛙";
		dictionary["MANOR GLOBE"] = "庄园地球仪";
		dictionary["MANOR GOBLET"] = "庄园高脚杯";
		dictionary["MANOR GOLDEN STATUE"] = "庄园黄金雕像";
		dictionary["MANOR GRAMOPHONE"] = "庄园留声机";
		dictionary["MANOR GRANDFATHER CLOCK"] = "庄园落地钟";
		dictionary["MANOR HARP"] = "庄园竖琴";
		dictionary["MANOR KETTLE"] = "庄园水壶";
		dictionary["MANOR MAGNIFYING GLASS"] = "庄园放大镜";
		dictionary["MANOR MAP"] = "庄园地图";
		dictionary["MANOR MONEY"] = "庄园钱币";
		dictionary["MANOR OCARINA"] = "庄园陶笛";
		dictionary["MANOR MUSIC BOX"] = "庄园音乐盒";
		dictionary["MANOR OLD CAMERA"] = "庄园老式相机";
		dictionary["MANOR PAINTING"] = "庄园油画";
		dictionary["MANOR PIANO"] = "庄园钢琴";
		dictionary["MANOR POCKET WATCH"] = "庄园怀表";
		dictionary["MANOR RADIO"] = "庄园收音机";
		dictionary["MANOR SCREAM DOLL"] = "庄园尖叫人偶";
		dictionary["MANOR SHIP IN A BOTTLE"] = "庄园瓶中船";
		dictionary["MANOR TELESCOPE"] = "庄园望远镜";
		dictionary["MANOR TOY MONKEY"] = "庄园玩具猴子";
		dictionary["MANOR TROPHY"] = "庄园奖杯";
		dictionary["MANOR URANIUM MUG"] = "庄园铀水杯";
		dictionary["MANOR URANIUM PLATE"] = "庄园铀餐盘";
		dictionary["MANOR VASE BIG"] = "庄园大型花瓶";
		dictionary["MANOR VASE CHUNKY"] = "庄园厚重花瓶";
		dictionary["MANOR VASE SMALL"] = "庄园小型花瓶";
		dictionary["MANOR VASE"] = "庄园花瓶";
		dictionary["MUSEUM BLENDER"] = "博物馆搅拌机";
		dictionary["MUSEUM GOLDFISH"] = "博物馆金鱼标本";
		dictionary["MUSEUM TEETH BOT"] = "博物馆牙齿机器人";
		dictionary["MUSEUM BABY HEAD"] = "博物馆婴儿头颅标本";
		dictionary["MUSEUM BANANA BOW"] = "博物馆香蕉弓";
		dictionary["MUSEUM BOOMBOX"] = "博物馆便携音响";
		dictionary["MUSEUM CAR"] = "博物馆汽车模型";
		dictionary["MUSEUM COCKTAIL"] = "博物馆鸡尾酒摆件";
		dictionary["MUSEUM COOL BRAIN"] = "博物馆酷炫大脑标本";
		dictionary["MUSEUM CUBE BALL"] = "博物馆立方球";
		dictionary["MUSEUM CUBIC SCULPTURE"] = "博物馆立方体雕塑";
		dictionary["MUSEUM CUBIC TOWER"] = "博物馆立方塔";
		dictionary["MUSEUM DUCK MAN"] = "博物馆鸭人标本";
		dictionary["MUSEUM EGG"] = "博物馆神秘蛋";
		dictionary["MUSEUM FISH"] = "博物馆鱼类标本";
		dictionary["MUSEUM FLESH BLOB"] = "博物馆肉块标本";
		dictionary["MUSEUM GEM BURGER"] = "博物馆宝石汉堡";
		dictionary["MUSEUM GOLDEN SWIRL"] = "博物馆金色漩涡摆件";
		dictionary["MUSEUM GOLDTOOTH"] = "博物馆金牙标本";
		dictionary["MUSEUM GUMBALL"] = "博物馆口香糖球";
		dictionary["MUSEUM HANDFACE"] = "博物馆手掌脸标本";
		dictionary["MUSEUM HORSE"] = "博物馆马匹标本";
		dictionary["MUSEUM LADYBUG"] = "博物馆瓢虫标本";
		dictionary["MUSEUM MILK"] = "博物馆牛奶瓶";
		dictionary["MUSEUM MONKEYBOX"] = "博物馆猴子盒";
		dictionary["MUSEUM PACIFIER"] = "博物馆奶嘴";
		dictionary["MUSEUM PIMPLEGUY"] = "博物馆痘痘男标本";
		dictionary["MUSEUM PLANE"] = "博物馆飞机模型";
		dictionary["MUSEUM RUBENDOLL"] = "博物馆鲁本玩偶";
		dictionary["MUSEUM SILVERFISH"] = "博物馆蠹虫标本";
		dictionary["MUSEUM TALL GUY"] = "博物馆高个子标本";
		dictionary["MUSEUM TOAST"] = "博物馆吐司摆件";
		dictionary["MUSEUM TOOTH"] = "博物馆牙齿标本";
		dictionary["MUSEUM WORM"] = "博物馆蠕虫标本";
		dictionary["MUSEUM WIRE FIGURE"] = "博物馆铁丝人偶";
		dictionary["MUSEUM VINYL"] = "博物馆黑胶唱片";
		dictionary["MUSEUM URANIUM MUG DELUXE"] = "博物馆豪华铀水杯";
		dictionary["MUSEUM TRAY"] = "博物馆托盘";
		dictionary["MUSEUM TRAFFIC LIGHT"] = "博物馆交通灯模型";
		dictionary["WIZARD ALCHEMY STATION"] = "巫师炼金台";
		dictionary["WIZARD BIRD SKULL"] = "巫师鸟类头骨";
		dictionary["WIZARD BROOM"] = "巫师扫帚";
		dictionary["WIZARD BUG"] = "巫师甲虫";
		dictionary["WIZARD CAULDRON BOX"] = "巫师坩埚箱";
		dictionary["WIZARD CHOMP BOOK"] = "巫师噬咬之书";
		dictionary["WIZARD CROWN"] = "巫师王冠";
		dictionary["WIZARD CRYSTAL BALL"] = "巫师水晶球";
		dictionary["WIZARD CRYSTAL"] = "巫师水晶";
		dictionary["WIZARD CUBE OF KNOWLEDGE"] = "巫师知识魔方";
		dictionary["WIZARD DIAMOND"] = "巫师钻石";
		dictionary["WIZARD DRAGON SKULL"] = "巫师巨龙头骨";
		dictionary["WIZARD DUMGOLFS STAFF"] = "巫师达姆高尔法杖";
		dictionary["WIZARD EYE BALL"] = "巫师眼球";
		dictionary["WIZARD EYE OF ORPIGOX"] = "巫师奥皮戈克斯之眼";
		dictionary["WIZARD FOREVER CANDLE"] = "巫师永恒蜡烛";
		dictionary["WIZARD FORTUNE CARD"] = "巫师命运卡牌";
		dictionary["WIZARD GEM BOX"] = "巫师宝石盒";
		dictionary["WIZARD GLOWING JAR"] = "巫师发光罐";
		dictionary["WIZARD GOBLIN ARM"] = "巫师哥布林手臂";
		dictionary["WIZARD GOBLIN HEAD"] = "巫师哥布林头颅";
		dictionary["WIZARD GRIFFIN STATUE"] = "巫师狮鹫雕像";
		dictionary["WIZARD LEVITATION POTION"] = "巫师漂浮药剂";
		dictionary["WIZARD LOVE POTION"] = "巫师爱情药剂";
		dictionary["WIZARD MASTER POTION"] = "巫师大师药剂";
		dictionary["WIZARD PENDANT"] = "巫师吊坠";
		dictionary["WIZARD POISON CHALICE"] = "巫师毒圣杯";
		dictionary["WIZARD POWER CRYSTAL"] = "巫师能量水晶";
		dictionary["WIZARD RED MUSHROOM"] = "巫师红蘑菇";
		dictionary["WIZARD SMALL GEM"] = "巫师小型宝石";
		dictionary["WIZARD SMALL POTION"] = "巫师小型药剂";
		dictionary["WIZARD SPIDER POTION"] = "巫师蜘蛛药剂";
		dictionary["WIZARD STAR WAND"] = "巫师星辰魔杖";
		dictionary["WIZARD SWORD"] = "巫师之剑";
		dictionary["WIZARD TENTACLE"] = "巫师触手";
		dictionary["WIZARD TIME GLASS"] = "巫师时光沙漏";
		dictionary["WIZARD TROLL FINGER"] = "巫师巨魔手指";
		dictionary["WIZARD UNICORN HORN"] = "巫师独角兽角";
		dictionary["ENEMY VALUABLE - BIG"] = "敌人掉落贵重物品-大型";
		dictionary["ENEMY VALUABLE - MEDIUM"] = "敌人掉落贵重物品-中型";
		dictionary["ENEMY VALUABLE - SMALL"] = "敌人掉落贵重物品-小型";
		dictionary["ORB BIG"] = "怪物红球-大";
		dictionary["ORB MEDIUM"] = "怪物红球-中";
		dictionary["ORB SMALL"] = "怪物红球-小";
		dictionary["SURPLUS  - BIG"] = "钱袋-大";
		dictionary["SURPLUS  - MEDIUM"] = "钱袋-中";
		dictionary["SURPLUS  - SMALL"] = "钱袋-小";
		dictionary["DAMAGE DONE TO ITEMS:\n\n"] = "物品损坏列表(疯狂指责):\n\n";
		dictionary["DESTROYED"] = "已销毁";
		dictionary["Total: "] = "总计:";
		dictionary[" left"] = " 剩余";
		dictionary["Unknown "] = " 未知来源";
		dictionary["Extracted "] = " 已提取";
		dictionary[" item(s))\n"] = " 件)\n";
		dictionary["Lost "] = " 损失";
		dictionary[" in value with "] = " 价值包含 ";
		dictionary[" item(s) destroyed.\n"] = " 件物品已销毁。\n";
		dictionary["Discovered "] = " 已发现 ";
		dictionary[" out of "] = " 件,总计 ";
		TextMap = dictionary;
	}
}