using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using LethalConfig.AutoConfig;
using LethalConfig.ConfigItems;
using LethalConfig.ConfigItems.Options;
using LethalConfig.Mods;
using LethalConfig.MonoBehaviours;
using LethalConfig.MonoBehaviours.ColorPicker;
using LethalConfig.MonoBehaviours.Components;
using LethalConfig.MonoBehaviours.Managers;
using LethalConfig.Utils;
using Newtonsoft.Json;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.InputSystem;
using UnityEngine.Serialization;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("0.0.0.0")]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
private struct MonoScriptData
{
public byte[] FilePathsData;
public byte[] TypesData;
public int TotalTypes;
public int TotalFiles;
public bool IsEditorOnly;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static MonoScriptData Get()
{
MonoScriptData result = default(MonoScriptData);
result.FilePathsData = new byte[4366]
{
0, 0, 0, 3, 0, 0, 0, 49, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 65, 117, 116, 111, 67, 111,
110, 102, 105, 103, 92, 65, 117, 116, 111, 67,
111, 110, 102, 105, 103, 71, 101, 110, 101, 114,
97, 116, 111, 114, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 45, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 65, 117, 116, 111, 67, 111, 110, 102, 105,
103, 92, 67, 111, 110, 102, 105, 103, 69, 110,
116, 114, 121, 80, 97, 116, 104, 46, 99, 115,
0, 0, 0, 2, 0, 0, 0, 45, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 92, 66, 97, 115, 101,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
53, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 92, 66,
111, 111, 108, 67, 104, 101, 99, 107, 66, 111,
120, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 53, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 92,
69, 110, 117, 109, 68, 114, 111, 112, 68, 111,
119, 110, 67, 111, 110, 102, 105, 103, 73, 116,
101, 109, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 56, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 115,
92, 70, 108, 111, 97, 116, 73, 110, 112, 117,
116, 70, 105, 101, 108, 100, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 52, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 92, 70, 108, 111, 97, 116,
83, 108, 105, 100, 101, 114, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 56, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 92, 70, 108, 111, 97, 116,
83, 116, 101, 112, 83, 108, 105, 100, 101, 114,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
54, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 92, 71,
101, 110, 101, 114, 105, 99, 66, 117, 116, 116,
111, 110, 67, 111, 110, 102, 105, 103, 73, 116,
101, 109, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 59, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 115,
92, 72, 101, 120, 67, 111, 108, 111, 114, 73,
110, 112, 117, 116, 70, 105, 101, 108, 100, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 46,
99, 115, 0, 0, 0, 1, 0, 0, 0, 54,
92, 65, 115, 115, 101, 116, 115, 92, 83, 99,
114, 105, 112, 116, 115, 92, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 115, 92, 73, 110,
116, 73, 110, 112, 117, 116, 70, 105, 101, 108,
100, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 50, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 92,
73, 110, 116, 83, 108, 105, 100, 101, 114, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 46,
99, 115, 0, 0, 0, 1, 0, 0, 0, 50,
92, 65, 115, 115, 101, 116, 115, 92, 83, 99,
114, 105, 112, 116, 115, 92, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 115, 92, 79, 112,
116, 105, 111, 110, 115, 92, 66, 97, 115, 101,
79, 112, 116, 105, 111, 110, 115, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 55, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 92, 79, 112, 116, 105,
111, 110, 115, 92, 66, 97, 115, 101, 82, 97,
110, 103, 101, 79, 112, 116, 105, 111, 110, 115,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
58, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 92, 79,
112, 116, 105, 111, 110, 115, 92, 66, 111, 111,
108, 67, 104, 101, 99, 107, 66, 111, 120, 79,
112, 116, 105, 111, 110, 115, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 54, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 92, 79, 112, 116, 105, 111,
110, 115, 92, 67, 97, 110, 77, 111, 100, 105,
102, 121, 82, 101, 115, 117, 108, 116, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 58, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 92, 79, 112, 116,
105, 111, 110, 115, 92, 69, 110, 117, 109, 68,
114, 111, 112, 68, 111, 119, 110, 79, 112, 116,
105, 111, 110, 115, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 61, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 92, 79, 112, 116, 105, 111, 110, 115,
92, 70, 108, 111, 97, 116, 73, 110, 112, 117,
116, 70, 105, 101, 108, 100, 79, 112, 116, 105,
111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
0, 0, 0, 57, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
115, 92, 79, 112, 116, 105, 111, 110, 115, 92,
70, 108, 111, 97, 116, 83, 108, 105, 100, 101,
114, 79, 112, 116, 105, 111, 110, 115, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 61, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 92, 79, 112, 116,
105, 111, 110, 115, 92, 70, 108, 111, 97, 116,
83, 116, 101, 112, 83, 108, 105, 100, 101, 114,
79, 112, 116, 105, 111, 110, 115, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 59, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 92, 79, 112, 116, 105,
111, 110, 115, 92, 71, 101, 110, 101, 114, 105,
99, 66, 117, 116, 116, 111, 110, 79, 112, 116,
105, 111, 110, 115, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 64, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 92, 79, 112, 116, 105, 111, 110, 115,
92, 72, 101, 120, 67, 111, 108, 111, 114, 73,
110, 112, 117, 116, 70, 105, 101, 108, 100, 79,
112, 116, 105, 111, 110, 115, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 59, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 92, 79, 112, 116, 105, 111,
110, 115, 92, 73, 110, 116, 73, 110, 112, 117,
116, 70, 105, 101, 108, 100, 79, 112, 116, 105,
111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
0, 0, 0, 55, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
115, 92, 79, 112, 116, 105, 111, 110, 115, 92,
73, 110, 116, 83, 108, 105, 100, 101, 114, 79,
112, 116, 105, 111, 110, 115, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 58, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 92, 79, 112, 116, 105, 111,
110, 115, 92, 84, 101, 120, 116, 68, 114, 111,
112, 68, 111, 119, 110, 79, 112, 116, 105, 111,
110, 115, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 60, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 115,
92, 79, 112, 116, 105, 111, 110, 115, 92, 84,
101, 120, 116, 73, 110, 112, 117, 116, 70, 105,
101, 108, 100, 79, 112, 116, 105, 111, 110, 115,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
53, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 92, 84,
101, 120, 116, 68, 114, 111, 112, 68, 111, 119,
110, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 55, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 92,
84, 101, 120, 116, 73, 110, 112, 117, 116, 70,
105, 101, 108, 100, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 26, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 67, 111, 110, 102, 105, 103, 115, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 38, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 77, 97, 110,
97, 103, 101, 114, 46, 99, 115, 0, 0, 0,
2, 0, 0, 0, 37, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 80, 108, 117, 103, 105, 110, 46,
99, 115, 0, 0, 0, 1, 0, 0, 0, 27,
92, 65, 115, 115, 101, 116, 115, 92, 83, 99,
114, 105, 112, 116, 115, 92, 77, 111, 100, 115,
92, 77, 111, 100, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 31, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 77, 111, 100, 115, 92, 77, 111, 100, 73,
110, 102, 111, 46, 99, 115, 0, 0, 0, 1,
0, 0, 0, 44, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
77, 111, 100, 115, 92, 84, 104, 117, 110, 100,
101, 114, 115, 116, 111, 114, 101, 77, 97, 110,
105, 102, 101, 115, 116, 46, 99, 115, 0, 0,
0, 1, 0, 0, 0, 64, 92, 65, 115, 115,
101, 116, 115, 92, 83, 99, 114, 105, 112, 116,
115, 92, 77, 111, 110, 111, 66, 101, 104, 97,
118, 105, 111, 117, 114, 115, 92, 67, 111, 108,
111, 114, 80, 105, 99, 107, 101, 114, 92, 67,
111, 108, 111, 114, 80, 105, 99, 107, 101, 114,
67, 111, 110, 116, 114, 111, 108, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 67, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 92, 67,
111, 108, 111, 114, 80, 105, 99, 107, 101, 114,
92, 67, 111, 110, 102, 105, 103, 77, 101, 110,
117, 67, 111, 108, 111, 114, 80, 105, 99, 107,
101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 60, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 92, 67, 111, 108, 111, 114, 80,
105, 99, 107, 101, 114, 92, 83, 86, 73, 109,
97, 103, 101, 67, 111, 110, 116, 114, 111, 108,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
67, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 92, 67, 111, 109, 112, 111, 110, 101, 110,
116, 115, 92, 66, 111, 111, 108, 67, 104, 101,
99, 107, 66, 111, 120, 67, 111, 110, 116, 114,
111, 108, 108, 101, 114, 46, 99, 115, 0, 0,
0, 1, 0, 0, 0, 67, 92, 65, 115, 115,
101, 116, 115, 92, 83, 99, 114, 105, 112, 116,
115, 92, 77, 111, 110, 111, 66, 101, 104, 97,
118, 105, 111, 117, 114, 115, 92, 67, 111, 109,
112, 111, 110, 101, 110, 116, 115, 92, 69, 110,
117, 109, 68, 114, 111, 112, 68, 111, 119, 110,
67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
70, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 92, 67, 111, 109, 112, 111, 110, 101, 110,
116, 115, 92, 70, 108, 111, 97, 116, 73, 110,
112, 117, 116, 70, 105, 101, 108, 100, 67, 111,
110, 116, 114, 111, 108, 108, 101, 114, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 66, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 92,
67, 111, 109, 112, 111, 110, 101, 110, 116, 115,
92, 70, 108, 111, 97, 116, 83, 108, 105, 100,
101, 114, 67, 111, 110, 116, 114, 111, 108, 108,
101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 70, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 92, 67, 111, 109, 112, 111, 110,
101, 110, 116, 115, 92, 70, 108, 111, 97, 116,
83, 116, 101, 112, 83, 108, 105, 100, 101, 114,
67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
68, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 92, 67, 111, 109, 112, 111, 110, 101, 110,
116, 115, 92, 71, 101, 110, 101, 114, 105, 99,
66, 117, 116, 116, 111, 110, 67, 111, 110, 116,
114, 111, 108, 108, 101, 114, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 73, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 92, 67, 111,
109, 112, 111, 110, 101, 110, 116, 115, 92, 72,
101, 120, 67, 111, 108, 111, 114, 73, 110, 112,
117, 116, 70, 105, 101, 108, 100, 67, 111, 110,
116, 114, 111, 108, 108, 101, 114, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 68, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 92, 67,
111, 109, 112, 111, 110, 101, 110, 116, 115, 92,
73, 110, 116, 73, 110, 112, 117, 116, 70, 105,
101, 108, 100, 67, 111, 110, 116, 114, 111, 108,
108, 101, 114, 46, 99, 115, 0, 0, 0, 1,
0, 0, 0, 64, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 92, 67, 111, 109, 112, 111,
110, 101, 110, 116, 115, 92, 73, 110, 116, 83,
108, 105, 100, 101, 114, 67, 111, 110, 116, 114,
111, 108, 108, 101, 114, 46, 99, 115, 0, 0,
0, 2, 0, 0, 0, 64, 92, 65, 115, 115,
101, 116, 115, 92, 83, 99, 114, 105, 112, 116,
115, 92, 77, 111, 110, 111, 66, 101, 104, 97,
118, 105, 111, 117, 114, 115, 92, 67, 111, 109,
112, 111, 110, 101, 110, 116, 115, 92, 77, 111,
100, 67, 111, 110, 102, 105, 103, 67, 111, 110,
116, 114, 111, 108, 108, 101, 114, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 67, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 92, 67,
111, 109, 112, 111, 110, 101, 110, 116, 115, 92,
84, 101, 120, 116, 68, 114, 111, 112, 68, 111,
119, 110, 67, 111, 110, 116, 114, 111, 108, 108,
101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 69, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 92, 67, 111, 109, 112, 111, 110,
101, 110, 116, 115, 92, 84, 101, 120, 116, 73,
110, 112, 117, 116, 70, 105, 101, 108, 100, 67,
111, 110, 116, 114, 111, 108, 108, 101, 114, 46,
99, 115, 0, 0, 0, 1, 0, 0, 0, 47,
92, 65, 115, 115, 101, 116, 115, 92, 83, 99,
114, 105, 112, 116, 115, 92, 77, 111, 110, 111,
66, 101, 104, 97, 118, 105, 111, 117, 114, 115,
92, 67, 111, 110, 102, 105, 103, 73, 110, 102,
111, 66, 111, 120, 46, 99, 115, 0, 0, 0,
1, 0, 0, 0, 44, 92, 65, 115, 115, 101,
116, 115, 92, 83, 99, 114, 105, 112, 116, 115,
92, 77, 111, 110, 111, 66, 101, 104, 97, 118,
105, 111, 117, 114, 115, 92, 67, 111, 110, 102,
105, 103, 76, 105, 115, 116, 46, 99, 115, 0,
0, 0, 1, 0, 0, 0, 44, 92, 65, 115,
115, 101, 116, 115, 92, 83, 99, 114, 105, 112,
116, 115, 92, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 92, 67, 111,
110, 102, 105, 103, 77, 101, 110, 117, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 56, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 92,
67, 111, 110, 102, 105, 103, 77, 101, 110, 117,
78, 111, 116, 105, 102, 105, 99, 97, 116, 105,
111, 110, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 48, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 92, 68, 101, 115, 99, 114, 105,
112, 116, 105, 111, 110, 66, 111, 120, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 65, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 92,
77, 97, 110, 97, 103, 101, 114, 115, 92, 67,
111, 110, 102, 105, 103, 77, 101, 110, 117, 65,
117, 100, 105, 111, 77, 97, 110, 97, 103, 101,
114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 60, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 77, 111,
110, 111, 66, 101, 104, 97, 118, 105, 111, 117,
114, 115, 92, 77, 97, 110, 97, 103, 101, 114,
115, 92, 67, 111, 110, 102, 105, 103, 77, 101,
110, 117, 77, 97, 110, 97, 103, 101, 114, 46,
99, 115, 0, 0, 0, 1, 0, 0, 0, 44,
92, 65, 115, 115, 101, 116, 115, 92, 83, 99,
114, 105, 112, 116, 115, 92, 77, 111, 110, 111,
66, 101, 104, 97, 118, 105, 111, 117, 114, 115,
92, 77, 111, 100, 73, 110, 102, 111, 66, 111,
120, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 41, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 77, 111,
110, 111, 66, 101, 104, 97, 118, 105, 111, 117,
114, 115, 92, 77, 111, 100, 76, 105, 115, 116,
46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
45, 92, 65, 115, 115, 101, 116, 115, 92, 83,
99, 114, 105, 112, 116, 115, 92, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 92, 77, 111, 100, 76, 105, 115, 116, 73,
116, 101, 109, 46, 99, 115, 0, 0, 0, 2,
0, 0, 0, 47, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 92, 83, 101, 99, 116, 105,
111, 110, 72, 101, 97, 100, 101, 114, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 41, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 92,
84, 111, 111, 108, 116, 105, 112, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 47, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 92, 84,
111, 111, 108, 116, 105, 112, 83, 121, 115, 116,
101, 109, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 48, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 92, 84, 111, 111, 108, 116, 105,
112, 84, 114, 105, 103, 103, 101, 114, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 46, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 92,
86, 101, 114, 115, 105, 111, 110, 76, 97, 98,
101, 108, 46, 99, 115, 0, 0, 0, 1, 0,
0, 0, 45, 92, 65, 115, 115, 101, 116, 115,
92, 83, 99, 114, 105, 112, 116, 115, 92, 80,
97, 116, 99, 104, 101, 115, 92, 77, 101, 110,
117, 77, 97, 110, 97, 103, 101, 114, 80, 97,
116, 99, 104, 101, 115, 46, 99, 115, 0, 0,
0, 1, 0, 0, 0, 50, 92, 65, 115, 115,
101, 116, 115, 92, 83, 99, 114, 105, 112, 116,
115, 92, 80, 97, 116, 99, 104, 101, 115, 92,
81, 117, 105, 99, 107, 77, 101, 110, 117, 77,
97, 110, 97, 103, 101, 114, 80, 97, 116, 99,
104, 101, 115, 46, 99, 115, 0, 0, 0, 1,
0, 0, 0, 46, 92, 65, 115, 115, 101, 116,
115, 92, 83, 99, 114, 105, 112, 116, 115, 92,
80, 97, 116, 99, 104, 101, 115, 92, 83, 116,
97, 114, 116, 79, 102, 82, 111, 117, 110, 100,
80, 97, 116, 99, 104, 101, 115, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 43, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 85, 116, 105, 108, 115, 92,
65, 115, 115, 101, 109, 98, 108, 121, 69, 120,
116, 101, 110, 115, 105, 111, 110, 115, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 31, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 85, 116, 105, 108, 115,
92, 65, 115, 115, 101, 116, 115, 46, 99, 115,
0, 0, 0, 1, 0, 0, 0, 33, 92, 65,
115, 115, 101, 116, 115, 92, 83, 99, 114, 105,
112, 116, 115, 92, 85, 116, 105, 108, 115, 92,
76, 111, 103, 85, 116, 105, 108, 115, 46, 99,
115, 0, 0, 0, 1, 0, 0, 0, 35, 92,
65, 115, 115, 101, 116, 115, 92, 83, 99, 114,
105, 112, 116, 115, 92, 85, 116, 105, 108, 115,
92, 77, 101, 110, 117, 115, 85, 116, 105, 108,
115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
0, 34, 92, 65, 115, 115, 101, 116, 115, 92,
83, 99, 114, 105, 112, 116, 115, 92, 85, 116,
105, 108, 115, 92, 80, 97, 116, 104, 85, 116,
105, 108, 115, 46, 99, 115
};
result.TypesData = new byte[4038]
{
0, 0, 0, 0, 43, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 65, 117,
116, 111, 67, 111, 110, 102, 105, 103, 124, 65,
117, 116, 111, 67, 111, 110, 102, 105, 103, 71,
101, 110, 101, 114, 97, 116, 111, 114, 0, 0,
0, 0, 58, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 46, 65, 117, 116, 111,
67, 111, 110, 102, 105, 103, 46, 65, 117, 116,
111, 67, 111, 110, 102, 105, 103, 71, 101, 110,
101, 114, 97, 116, 111, 114, 124, 65, 117, 116,
111, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 0, 0, 0, 0, 66, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 65,
117, 116, 111, 67, 111, 110, 102, 105, 103, 46,
65, 117, 116, 111, 67, 111, 110, 102, 105, 103,
71, 101, 110, 101, 114, 97, 116, 111, 114, 124,
67, 111, 110, 102, 105, 103, 70, 105, 108, 101,
65, 115, 115, 101, 109, 98, 108, 121, 80, 97,
105, 114, 0, 0, 0, 0, 39, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
65, 117, 116, 111, 67, 111, 110, 102, 105, 103,
124, 67, 111, 110, 102, 105, 103, 69, 110, 116,
114, 121, 80, 97, 116, 104, 0, 0, 0, 0,
39, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 46, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 124, 66, 97, 115, 101,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
0, 0, 0, 0, 44, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 124,
66, 97, 115, 101, 86, 97, 108, 117, 101, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 0,
0, 0, 0, 47, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 124, 66,
111, 111, 108, 67, 104, 101, 99, 107, 66, 111,
120, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 0, 0, 0, 0, 47, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 115,
124, 69, 110, 117, 109, 68, 114, 111, 112, 68,
111, 119, 110, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 0, 0, 0, 0, 50, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 124, 70, 108, 111, 97, 116, 73, 110,
112, 117, 116, 70, 105, 101, 108, 100, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 0, 0,
0, 0, 46, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 46, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 115, 124, 70, 108,
111, 97, 116, 83, 108, 105, 100, 101, 114, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 0,
0, 0, 0, 50, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 115, 124, 70,
108, 111, 97, 116, 83, 116, 101, 112, 83, 108,
105, 100, 101, 114, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 0, 0, 0, 0, 48, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 67, 111, 110, 102, 105, 103, 73, 116,
101, 109, 115, 124, 71, 101, 110, 101, 114, 105,
99, 66, 117, 116, 116, 111, 110, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 0, 0, 0,
0, 53, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 124, 72, 101, 120,
67, 111, 108, 111, 114, 73, 110, 112, 117, 116,
70, 105, 101, 108, 100, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 0, 0, 0, 0, 48,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 67, 111, 110, 102, 105, 103, 73,
116, 101, 109, 115, 124, 73, 110, 116, 73, 110,
112, 117, 116, 70, 105, 101, 108, 100, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 0, 0,
0, 0, 44, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 46, 67, 111, 110, 102,
105, 103, 73, 116, 101, 109, 115, 124, 73, 110,
116, 83, 108, 105, 100, 101, 114, 67, 111, 110,
102, 105, 103, 73, 116, 101, 109, 0, 0, 0,
0, 44, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 46, 79, 112, 116,
105, 111, 110, 115, 124, 66, 97, 115, 101, 79,
112, 116, 105, 111, 110, 115, 0, 0, 0, 0,
49, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 46, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 46, 79, 112, 116, 105,
111, 110, 115, 124, 66, 97, 115, 101, 82, 97,
110, 103, 101, 79, 112, 116, 105, 111, 110, 115,
0, 0, 0, 0, 52, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 46,
79, 112, 116, 105, 111, 110, 115, 124, 66, 111,
111, 108, 67, 104, 101, 99, 107, 66, 111, 120,
79, 112, 116, 105, 111, 110, 115, 0, 0, 0,
0, 48, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 46, 79, 112, 116,
105, 111, 110, 115, 124, 67, 97, 110, 77, 111,
100, 105, 102, 121, 82, 101, 115, 117, 108, 116,
0, 0, 0, 0, 52, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 115, 46,
79, 112, 116, 105, 111, 110, 115, 124, 69, 110,
117, 109, 68, 114, 111, 112, 68, 111, 119, 110,
79, 112, 116, 105, 111, 110, 115, 0, 0, 0,
0, 55, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 46, 79, 112, 116,
105, 111, 110, 115, 124, 70, 108, 111, 97, 116,
73, 110, 112, 117, 116, 70, 105, 101, 108, 100,
79, 112, 116, 105, 111, 110, 115, 0, 0, 0,
0, 51, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 67, 111, 110, 102, 105,
103, 73, 116, 101, 109, 115, 46, 79, 112, 116,
105, 111, 110, 115, 124, 70, 108, 111, 97, 116,
83, 108, 105, 100, 101, 114, 79, 112, 116, 105,
111, 110, 115, 0, 0, 0, 0, 55, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 46, 79, 112, 116, 105, 111, 110, 115,
124, 70, 108, 111, 97, 116, 83, 116, 101, 112,
83, 108, 105, 100, 101, 114, 79, 112, 116, 105,
111, 110, 115, 0, 0, 0, 0, 53, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 46, 79, 112, 116, 105, 111, 110, 115,
124, 71, 101, 110, 101, 114, 105, 99, 66, 117,
116, 116, 111, 110, 79, 112, 116, 105, 111, 110,
115, 0, 0, 0, 0, 58, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 67,
111, 110, 102, 105, 103, 73, 116, 101, 109, 115,
46, 79, 112, 116, 105, 111, 110, 115, 124, 72,
101, 120, 67, 111, 108, 111, 114, 73, 110, 112,
117, 116, 70, 105, 101, 108, 100, 79, 112, 116,
105, 111, 110, 115, 0, 0, 0, 0, 53, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 67, 111, 110, 102, 105, 103, 73, 116,
101, 109, 115, 46, 79, 112, 116, 105, 111, 110,
115, 124, 73, 110, 116, 73, 110, 112, 117, 116,
70, 105, 101, 108, 100, 79, 112, 116, 105, 111,
110, 115, 0, 0, 0, 0, 49, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
115, 46, 79, 112, 116, 105, 111, 110, 115, 124,
73, 110, 116, 83, 108, 105, 100, 101, 114, 79,
112, 116, 105, 111, 110, 115, 0, 0, 0, 0,
52, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 46, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 115, 46, 79, 112, 116, 105,
111, 110, 115, 124, 84, 101, 120, 116, 68, 114,
111, 112, 68, 111, 119, 110, 79, 112, 116, 105,
111, 110, 115, 0, 0, 0, 0, 54, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 67, 111, 110, 102, 105, 103, 73, 116, 101,
109, 115, 46, 79, 112, 116, 105, 111, 110, 115,
124, 84, 101, 120, 116, 73, 110, 112, 117, 116,
70, 105, 101, 108, 100, 79, 112, 116, 105, 111,
110, 115, 0, 0, 0, 0, 47, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
67, 111, 110, 102, 105, 103, 73, 116, 101, 109,
115, 124, 84, 101, 120, 116, 68, 114, 111, 112,
68, 111, 119, 110, 67, 111, 110, 102, 105, 103,
73, 116, 101, 109, 0, 0, 0, 0, 49, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 67, 111, 110, 102, 105, 103, 73, 116,
101, 109, 115, 124, 84, 101, 120, 116, 73, 110,
112, 117, 116, 70, 105, 101, 108, 100, 67, 111,
110, 102, 105, 103, 73, 116, 101, 109, 0, 0,
0, 0, 20, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 124, 67, 111, 110, 102,
105, 103, 115, 0, 0, 0, 0, 32, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
124, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 77, 97, 110, 97, 103, 101, 114,
0, 0, 0, 0, 23, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 124, 80, 108,
117, 103, 105, 110, 73, 110, 102, 111, 0, 0,
0, 0, 31, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 124, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 80, 108,
117, 103, 105, 110, 0, 0, 0, 0, 21, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 77, 111, 100, 115, 124, 77, 111, 100,
0, 0, 0, 0, 25, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 77, 111,
100, 115, 124, 77, 111, 100, 73, 110, 102, 111,
0, 0, 0, 0, 38, 76, 101, 116, 104, 97,
108, 67, 111, 110, 102, 105, 103, 46, 77, 111,
100, 115, 124, 84, 104, 117, 110, 100, 101, 114,
115, 116, 111, 114, 101, 77, 97, 110, 105, 102,
101, 115, 116, 0, 0, 0, 0, 58, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 77, 111, 110, 111, 66, 101, 104, 97, 118,
105, 111, 117, 114, 115, 46, 67, 111, 108, 111,
114, 80, 105, 99, 107, 101, 114, 124, 67, 111,
108, 111, 114, 80, 105, 99, 107, 101, 114, 67,
111, 110, 116, 114, 111, 108, 0, 0, 0, 0,
61, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 46, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 46, 67,
111, 108, 111, 114, 80, 105, 99, 107, 101, 114,
124, 67, 111, 110, 102, 105, 103, 77, 101, 110,
117, 67, 111, 108, 111, 114, 80, 105, 99, 107,
101, 114, 0, 0, 0, 0, 54, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 46, 67, 111, 108, 111, 114,
80, 105, 99, 107, 101, 114, 124, 83, 86, 73,
109, 97, 103, 101, 67, 111, 110, 116, 114, 111,
108, 0, 0, 0, 0, 61, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 46, 67, 111, 109, 112, 111, 110,
101, 110, 116, 115, 124, 66, 111, 111, 108, 67,
104, 101, 99, 107, 66, 111, 120, 67, 111, 110,
116, 114, 111, 108, 108, 101, 114, 0, 0, 0,
0, 61, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 46,
67, 111, 109, 112, 111, 110, 101, 110, 116, 115,
124, 69, 110, 117, 109, 68, 114, 111, 112, 68,
111, 119, 110, 67, 111, 110, 116, 114, 111, 108,
108, 101, 114, 0, 0, 0, 0, 64, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 77, 111, 110, 111, 66, 101, 104, 97, 118,
105, 111, 117, 114, 115, 46, 67, 111, 109, 112,
111, 110, 101, 110, 116, 115, 124, 70, 108, 111,
97, 116, 73, 110, 112, 117, 116, 70, 105, 101,
108, 100, 67, 111, 110, 116, 114, 111, 108, 108,
101, 114, 0, 0, 0, 0, 60, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 46, 67, 111, 109, 112, 111,
110, 101, 110, 116, 115, 124, 70, 108, 111, 97,
116, 83, 108, 105, 100, 101, 114, 67, 111, 110,
116, 114, 111, 108, 108, 101, 114, 0, 0, 0,
0, 64, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 46,
67, 111, 109, 112, 111, 110, 101, 110, 116, 115,
124, 70, 108, 111, 97, 116, 83, 116, 101, 112,
83, 108, 105, 100, 101, 114, 67, 111, 110, 116,
114, 111, 108, 108, 101, 114, 0, 0, 0, 0,
62, 76, 101, 116, 104, 97, 108, 67, 111, 110,
102, 105, 103, 46, 77, 111, 110, 111, 66, 101,
104, 97, 118, 105, 111, 117, 114, 115, 46, 67,
111, 109, 112, 111, 110, 101, 110, 116, 115, 124,
71, 101, 110, 101, 114, 105, 99, 66, 117, 116,
116, 111, 110, 67, 111, 110, 116, 114, 111, 108,
108, 101, 114, 0, 0, 0, 0, 67, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 77, 111, 110, 111, 66, 101, 104, 97, 118,
105, 111, 117, 114, 115, 46, 67, 111, 109, 112,
111, 110, 101, 110, 116, 115, 124, 72, 101, 120,
67, 111, 108, 111, 114, 73, 110, 112, 117, 116,
70, 105, 101, 108, 100, 67, 111, 110, 116, 114,
111, 108, 108, 101, 114, 0, 0, 0, 0, 62,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 46, 67, 111,
109, 112, 111, 110, 101, 110, 116, 115, 124, 73,
110, 116, 73, 110, 112, 117, 116, 70, 105, 101,
108, 100, 67, 111, 110, 116, 114, 111, 108, 108,
101, 114, 0, 0, 0, 0, 58, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 46, 67, 111, 109, 112, 111,
110, 101, 110, 116, 115, 124, 73, 110, 116, 83,
108, 105, 100, 101, 114, 67, 111, 110, 116, 114,
111, 108, 108, 101, 114, 1, 0, 0, 0, 58,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 46, 67, 111,
109, 112, 111, 110, 101, 110, 116, 115, 124, 77,
111, 100, 67, 111, 110, 102, 105, 103, 67, 111,
110, 116, 114, 111, 108, 108, 101, 114, 1, 0,
0, 0, 58, 76, 101, 116, 104, 97, 108, 67,
111, 110, 102, 105, 103, 46, 77, 111, 110, 111,
66, 101, 104, 97, 118, 105, 111, 117, 114, 115,
46, 67, 111, 109, 112, 111, 110, 101, 110, 116,
115, 124, 77, 111, 100, 67, 111, 110, 102, 105,
103, 67, 111, 110, 116, 114, 111, 108, 108, 101,
114, 0, 0, 0, 0, 61, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 46, 67, 111, 109, 112, 111, 110,
101, 110, 116, 115, 124, 84, 101, 120, 116, 68,
114, 111, 112, 68, 111, 119, 110, 67, 111, 110,
116, 114, 111, 108, 108, 101, 114, 0, 0, 0,
0, 63, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 46,
67, 111, 109, 112, 111, 110, 101, 110, 116, 115,
124, 84, 101, 120, 116, 73, 110, 112, 117, 116,
70, 105, 101, 108, 100, 67, 111, 110, 116, 114,
111, 108, 108, 101, 114, 0, 0, 0, 0, 41,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 124, 67, 111,
110, 102, 105, 103, 73, 110, 102, 111, 66, 111,
120, 0, 0, 0, 0, 38, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 124, 67, 111, 110, 102, 105, 103,
76, 105, 115, 116, 0, 0, 0, 0, 38, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 77, 111, 110, 111, 66, 101, 104, 97,
118, 105, 111, 117, 114, 115, 124, 67, 111, 110,
102, 105, 103, 77, 101, 110, 117, 0, 0, 0,
0, 50, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 124,
67, 111, 110, 102, 105, 103, 77, 101, 110, 117,
78, 111, 116, 105, 102, 105, 99, 97, 116, 105,
111, 110, 0, 0, 0, 0, 42, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 124, 68, 101, 115, 99, 114,
105, 112, 116, 105, 111, 110, 66, 111, 120, 0,
0, 0, 0, 59, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 46, 77, 97, 110, 97, 103, 101, 114, 115,
124, 67, 111, 110, 102, 105, 103, 77, 101, 110,
117, 65, 117, 100, 105, 111, 77, 97, 110, 97,
103, 101, 114, 0, 0, 0, 0, 54, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 77, 111, 110, 111, 66, 101, 104, 97, 118,
105, 111, 117, 114, 115, 46, 77, 97, 110, 97,
103, 101, 114, 115, 124, 67, 111, 110, 102, 105,
103, 77, 101, 110, 117, 77, 97, 110, 97, 103,
101, 114, 0, 0, 0, 0, 38, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
77, 111, 110, 111, 66, 101, 104, 97, 118, 105,
111, 117, 114, 115, 124, 77, 111, 100, 73, 110,
102, 111, 66, 111, 120, 0, 0, 0, 0, 35,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 124, 77, 111,
100, 76, 105, 115, 116, 0, 0, 0, 0, 39,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 124, 77, 111,
100, 76, 105, 115, 116, 73, 116, 101, 109, 0,
0, 0, 0, 41, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 77, 111, 110,
111, 66, 101, 104, 97, 118, 105, 111, 117, 114,
115, 124, 83, 101, 99, 116, 105, 111, 110, 72,
101, 97, 100, 101, 114, 0, 0, 0, 0, 41,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 77, 111, 110, 111, 66, 101, 104,
97, 118, 105, 111, 117, 114, 115, 124, 83, 101,
99, 116, 105, 111, 110, 66, 117, 116, 116, 111,
110, 0, 0, 0, 0, 35, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 124, 84, 111, 111, 108, 116, 105,
112, 0, 0, 0, 0, 41, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 77,
111, 110, 111, 66, 101, 104, 97, 118, 105, 111,
117, 114, 115, 124, 84, 111, 111, 108, 116, 105,
112, 83, 121, 115, 116, 101, 109, 0, 0, 0,
0, 42, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 77, 111, 110, 111, 66,
101, 104, 97, 118, 105, 111, 117, 114, 115, 124,
84, 111, 111, 108, 116, 105, 112, 84, 114, 105,
103, 103, 101, 114, 0, 0, 0, 0, 40, 76,
101, 116, 104, 97, 108, 67, 111, 110, 102, 105,
103, 46, 77, 111, 110, 111, 66, 101, 104, 97,
118, 105, 111, 117, 114, 115, 124, 86, 101, 114,
115, 105, 111, 110, 76, 97, 98, 101, 108, 0,
0, 0, 0, 39, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 80, 97, 116,
99, 104, 101, 115, 124, 77, 101, 110, 117, 77,
97, 110, 97, 103, 101, 114, 80, 97, 116, 99,
104, 101, 115, 0, 0, 0, 0, 44, 76, 101,
116, 104, 97, 108, 67, 111, 110, 102, 105, 103,
46, 80, 97, 116, 99, 104, 101, 115, 124, 81,
117, 105, 99, 107, 77, 101, 110, 117, 77, 97,
110, 97, 103, 101, 114, 80, 97, 116, 99, 104,
101, 115, 0, 0, 0, 0, 40, 76, 101, 116,
104, 97, 108, 67, 111, 110, 102, 105, 103, 46,
80, 97, 116, 99, 104, 101, 115, 124, 83, 116,
97, 114, 116, 79, 102, 82, 111, 117, 110, 100,
80, 97, 116, 99, 104, 101, 115, 0, 0, 0,
0, 37, 76, 101, 116, 104, 97, 108, 67, 111,
110, 102, 105, 103, 46, 85, 116, 105, 108, 115,
124, 65, 115, 115, 101, 109, 98, 108, 121, 69,
120, 116, 101, 110, 115, 105, 111, 110, 115, 0,
0, 0, 0, 25, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 85, 116, 105,
108, 115, 124, 65, 115, 115, 101, 116, 115, 0,
0, 0, 0, 27, 76, 101, 116, 104, 97, 108,
67, 111, 110, 102, 105, 103, 46, 85, 116, 105,
108, 115, 124, 76, 111, 103, 85, 116, 105, 108,
115, 0, 0, 0, 0, 29, 76, 101, 116, 104,
97, 108, 67, 111, 110, 102, 105, 103, 46, 85,
116, 105, 108, 115, 124, 77, 101, 110, 117, 115,
85, 116, 105, 108, 115, 0, 0, 0, 0, 28,
76, 101, 116, 104, 97, 108, 67, 111, 110, 102,
105, 103, 46, 85, 116, 105, 108, 115, 124, 80,
97, 116, 104, 85, 116, 105, 108, 115
};
result.TotalFiles = 72;
result.TotalTypes = 78;
result.IsEditorOnly = false;
return result;
}
}
namespace LethalConfig
{
internal static class Configs
{
private enum TestEnum
{
None,
First,
Second
}
internal static ConfigEntry<bool> IsLethalConfigHidden { get; private set; }
internal static ConfigEntry<bool> AddSectionButtons { get; private set; }
internal static ConfigEntry<bool> SectionsDefaultClosed { get; private set; }
internal static ConfigEntry<bool> HideSearchBars { get; private set; }
internal static void Initialize(ConfigFile config)
{
CreateConfigs(config);
CreateExampleConfigs(config);
}
private static void CreateConfigs(ConfigFile config)
{
IsLethalConfigHidden = config.Bind<bool>("General", "Hide Lethal Config", false, "Hides the LethalConfig menu in the game. This setting will not show up in LethalConfig itself.");
LethalConfigManager.SkipAutoGenFor((ConfigEntryBase)(object)IsLethalConfigHidden);
AddSectionButtons = config.Bind<bool>("General", "AddSectionButtons", true, "Add Section buttons to show/hide config items in a section.");
LethalConfigManager.SkipAutoGenFor((ConfigEntryBase)(object)AddSectionButtons);
SectionsDefaultClosed = config.Bind<bool>("General", "SectionsDefaultClosed", false, "Hides all config items by default when AddSectionButtons is enabled.");
LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(SectionsDefaultClosed, requiresRestart: false));
HideSearchBars = config.Bind<bool>("General", "HideSearchBars", false, "Hides all search bars.");
LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(HideSearchBars, requiresRestart: false));
}
private static void CreateExampleConfigs(ConfigFile config)
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Expected O, but got Unknown
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Expected O, but got Unknown
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Expected O, but got Unknown
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Expected O, but got Unknown
//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d5: Expected O, but got Unknown
//IL_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_0156: Expected O, but got Unknown
ConfigEntry<int> configEntry = config.Bind<int>("Example", "Int Slider", 30, new ConfigDescription("This is an integer slider. You can also type a value in the input field to the right of the slider.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>()));
ConfigEntry<float> configEntry2 = config.Bind<float>("Example", "Float Slider", 0f, new ConfigDescription("This is a float slider. You can also type a value in the input field to the right of the slider.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 1f), Array.Empty<object>()));
ConfigEntry<float> configEntry3 = config.Bind<float>("Example", "Float Step Slider", 0f, new ConfigDescription("This is a float step slider. It set values in increments. You can also type a value in the input field to the right of the slider.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-1f, 1f), Array.Empty<object>()));
ConfigEntry<bool> configEntry4 = config.Bind<bool>("Example", "Bool Checkbox", false, new ConfigDescription("This is a bool checkbox.", (AcceptableValueBase)null, Array.Empty<object>()));
ConfigEntry<TestEnum> configEntry5 = config.Bind<TestEnum>("Example", "Enum Dropdown", TestEnum.None, new ConfigDescription("This is a enum dropdown.", (AcceptableValueBase)null, Array.Empty<object>()));
ConfigEntry<string> configEntry6 = config.Bind<string>("Example", "Text Input", "Example", "This is a text input field. It can have a limit of characters too.");
ConfigEntry<string> configEntry7 = config.Bind<string>("Example", "Multiline Text Input", "Example", "This is a text input field. It can have a limit of characters too.");
ConfigEntry<string> configEntry8 = config.Bind<string>("Example", "Text Input Dropdown", "Two", new ConfigDescription("This is a text input with an acceptable value list.", (AcceptableValueBase)(object)new AcceptableValueList<string>(new string[3] { "One", "Two", "HL:Alyx" }), Array.Empty<object>()));
ConfigEntry<string> configEntry9 = config.Bind<string>("Example", "Hex Color Input", "#FFFFFF", "This is a hex color input field. You can preview the color and open the color picker by clicking the color!");
ConfigEntry<int> configEntry10 = config.Bind<int>("Example", "Int Input", 50, "This is an integer input field.");
ConfigEntry<float> configEntry11 = config.Bind<float>("Example", "Float Input", 0.5f, "This is a float input field.");
LethalConfigManager.AddConfigItem(new IntSliderConfigItem(configEntry, requiresRestart: false));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(configEntry2, requiresRestart: false));
LethalConfigManager.AddConfigItem(new FloatStepSliderConfigItem(configEntry3, new FloatStepSliderOptions
{
Step = 0.1f,
RequiresRestart = false,
Min = -1f,
Max = 1f
}));
LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(configEntry4, requiresRestart: false));
LethalConfigManager.AddConfigItem(new EnumDropDownConfigItem<TestEnum>(configEntry5, requiresRestart: false));
LethalConfigManager.AddConfigItem(new TextInputFieldConfigItem(configEntry6, requiresRestart: false));
LethalConfigManager.AddConfigItem(new TextInputFieldConfigItem(configEntry7, new TextInputFieldOptions
{
NumberOfLines = 0,
TrimText = true
}));
LethalConfigManager.AddConfigItem(new TextDropDownConfigItem(configEntry8, new TextDropDownOptions
{
RequiresRestart = false
}));
LethalConfigManager.AddConfigItem(new HexColorInputFieldConfigItem(configEntry9, new HexColorInputFieldOptions
{
RequiresRestart = false
}));
LethalConfigManager.AddConfigItem(new IntInputFieldConfigItem(configEntry10, new IntInputFieldOptions
{
Max = 150
}));
LethalConfigManager.AddConfigItem(new FloatInputFieldConfigItem(configEntry11, new FloatInputFieldOptions
{
Max = 2.5f
}));
LethalConfigManager.AddConfigItem(new GenericButtonConfigItem("Example", "Button", "This is a test button with a callback", "Open", delegate
{
if (Object.op_Implicit((Object)(object)ConfigMenuManager.Instance))
{
ConfigMenuManager.DisplayNotification("This is a test notification", "OK");
}
}));
}
}
public static class LethalConfigManager
{
private static readonly List<AutoConfigGenerator.ConfigFileAssemblyPair> CustomConfigFiles = new List<AutoConfigGenerator.ConfigFileAssemblyPair>();
private static readonly List<AutoConfigGenerator.ConfigFileAssemblyPair> LateConfigFiles = new List<AutoConfigGenerator.ConfigFileAssemblyPair>();
private static bool _hasGeneratedMissingConfigs;
internal static Dictionary<string, Mod> Mods { get; } = new Dictionary<string, Mod>();
private static Dictionary<Mod, Assembly> ModToAssemblyMap { get; } = new Dictionary<Mod, Assembly>();
internal static void AutoGenerateMissingConfigsIfNeeded()
{
if (!_hasGeneratedMissingConfigs)
{
GenerateConfigItems(AutoConfigGenerator.AutoGenerateConfigs(CustomConfigFiles.ToArray()));
_hasGeneratedMissingConfigs = true;
}
}
private static void GenerateConfigItems(AutoConfigGenerator.AutoConfigItem[] generatedConfigs)
{
Mod[] second = Mods.Values.ToArray();
IEnumerable<BaseConfigItem> existingConfigsFlat = Mods.SelectMany((KeyValuePair<string, Mod> kv) => kv.Value.ConfigItems);
Dictionary<Mod, IEnumerable<BaseConfigItem>> dictionary = (from c in generatedConfigs
group c.ConfigItem by ModForAssembly(c.Assembly) into kv
where kv.Key != null
select kv).SelectMany((IGrouping<Mod, BaseConfigItem> kv) => from c in kv.Select(delegate(BaseConfigItem c)
{
c.Owner = kv.Key;
return c;
})
where !kv.Key.EntriesToSkipAutoGen.Any((ConfigEntryPath path) => path.Matches(c))
where existingConfigsFlat.FirstOrDefault(c.IsSameConfig) == null
group c by c.Owner).ToDictionary((IGrouping<Mod, BaseConfigItem> kv) => kv.Key, (IGrouping<Mod, BaseConfigItem> kv) => kv.Select((BaseConfigItem c) => c));
Mod[] array = dictionary.Keys.Except(second).ToArray();
Mod[] array2 = array;
foreach (Mod obj in array2)
{
obj.IsAutoGenerated = true;
obj.ModInfo.Description += "\n*This mod entry was automatically generated as it does not use LethalConfig directly.";
}
foreach (KeyValuePair<Mod, IEnumerable<BaseConfigItem>> item in dictionary)
{
Assembly valueOrDefault = ModToAssemblyMap.GetValueOrDefault(item.Key);
if (valueOrDefault == null)
{
continue;
}
foreach (BaseConfigItem item2 in item.Value)
{
AddConfigItemForAssembly(item2, valueOrDefault);
}
}
LogUtils.LogDebug($"Generated {array.Length} mod entries.");
LogUtils.LogDebug($"Generated {generatedConfigs.Length} configs, of which {dictionary.SelectMany((KeyValuePair<Mod, IEnumerable<BaseConfigItem>> kv) => kv.Value).Count()} were missing and registered.");
}
public static void AddConfigItem(BaseConfigItem configItem)
{
if (AddConfigItemForAssembly(configItem, Assembly.GetCallingAssembly()))
{
LogUtils.LogDebug($"Registered config \"{configItem}\"");
}
}
public static void AddConfigItem(BaseConfigItem configItem, Assembly assembly)
{
if (AddConfigItemForAssembly(configItem, assembly))
{
LogUtils.LogDebug($"Registered config \"{configItem}\"");
}
}
private static bool AddConfigItemForAssembly(BaseConfigItem configItem, Assembly assembly)
{
Mod mod = ModForAssembly(assembly);
if (mod == null)
{
LogUtils.LogWarning("Mod for assembly not found.");
return false;
}
configItem.Owner = mod;
if (mod.ConfigItems.Any((BaseConfigItem c) => c.IsSameConfig(configItem)))
{
LogUtils.LogWarning($"Ignoring duplicated config \"{configItem}\"");
return false;
}
mod.AddConfigItem(configItem);
return true;
}
private static Mod ModForAssembly(Assembly assembly)
{
if (!assembly.TryGetModInfo(out var modInfo))
{
return null;
}
if (Mods.TryGetValue(modInfo.Guid, out var value))
{
return value;
}
Mod mod = new Mod(modInfo);
Mods.Add(modInfo.Guid, mod);
ModToAssemblyMap.Add(mod, assembly);
return mod;
}
public static void SetModIcon(Sprite sprite)
{
if (!((Object)(object)sprite == (Object)null))
{
Mod mod = ModForAssembly(Assembly.GetCallingAssembly());
if (mod != null)
{
mod.ModInfo.Icon = sprite;
}
}
}
public static void SetModDescription(string description)
{
if (description != null)
{
Mod mod = ModForAssembly(Assembly.GetCallingAssembly());
if (mod != null)
{
mod.ModInfo.Description = description;
}
}
}
public static void SkipAutoGenFor(string configSection)
{
ModForAssembly(Assembly.GetCallingAssembly())?.EntriesToSkipAutoGen.Add(new ConfigEntryPath(configSection, "*"));
}
public static void SkipAutoGenFor(ConfigEntryBase configEntryBase)
{
ModForAssembly(Assembly.GetCallingAssembly())?.EntriesToSkipAutoGen.Add(new ConfigEntryPath(configEntryBase.Definition.Section, configEntryBase.Definition.Key));
}
public static void SkipAutoGen()
{
ModForAssembly(Assembly.GetCallingAssembly())?.EntriesToSkipAutoGen.Add(new ConfigEntryPath("*", "*"));
}
public static void QueueCustomConfigFileForAutoGeneration(ConfigFile configFile)
{
CustomConfigFiles.Add(new AutoConfigGenerator.ConfigFileAssemblyPair
{
ConfigFile = configFile,
Assembly = Assembly.GetCallingAssembly()
});
}
public static void QueueCustomConfigFileForLateAutoGeneration(ConfigFile configFile)
{
LateConfigFiles.Add(new AutoConfigGenerator.ConfigFileAssemblyPair
{
ConfigFile = configFile,
Assembly = Assembly.GetCallingAssembly()
});
}
public static void RunLateAutoGeneration()
{
if (LateConfigFiles.Count != 0)
{
GenerateConfigItems(AutoConfigGenerator.AutoGenerateConfigs(LateConfigFiles.ToArray()));
LateConfigFiles.Clear();
}
}
}
public static class PluginInfo
{
public const string Guid = "ainavt.lc.lethalconfig";
public const string Name = "LethalConfig";
public const string Version = "1.4.6";
}
[BepInPlugin("ainavt.lc.lethalconfig", "LethalConfig", "1.4.6")]
internal class LethalConfigPlugin : BaseUnityPlugin
{
private static LethalConfigPlugin _instance;
private static Harmony _harmony;
private void Awake()
{
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Expected O, but got Unknown
if ((Object)(object)_instance == (Object)null)
{
_instance = this;
}
LogUtils.Init("ainavt.lc.lethalconfig");
Configs.Initialize(((BaseUnityPlugin)this).Config);
if (Configs.IsLethalConfigHidden.Value)
{
LogUtils.LogInfo("LethalConfig is hidden and will not load.");
return;
}
Assets.Init();
_harmony = new Harmony("ainavt.lc.lethalconfig");
_harmony.PatchAll();
LogUtils.LogInfo("LethalConfig loaded!");
}
}
}
namespace LethalConfig.Utils
{
internal static class AssemblyExtensions
{
internal static bool TryGetModInfo(this Assembly assembly, out ModInfo modInfo)
{
modInfo = new ModInfo();
BepInPlugin val = assembly.FindPluginAttribute();
if (val == null)
{
return false;
}
modInfo.Name = val.Name;
modInfo.Guid = val.GUID;
modInfo.Version = val.Version.ToString();
return true;
}
private static BepInPlugin FindPluginAttribute(this Assembly assembly)
{
Type[] source;
try
{
source = assembly.GetTypes();
}
catch (ReflectionTypeLoadException ex)
{
source = ex.Types.Where((Type t) => t != null).ToArray();
}
return source.Select((Type type) => ((MemberInfo)type).GetCustomAttribute<BepInPlugin>()).FirstOrDefault<BepInPlugin>((Func<BepInPlugin, bool>)((BepInPlugin plugin) => plugin != null));
}
}
internal static class Assets
{
private static AssetBundle _assetBundle;
internal static GameObject ConfigMenuManagerPrefab;
internal static GameObject ConfigMenuNotificationPrefab;
internal static GameObject ConfigMenuColorPickerPrefab;
internal static GameObject ConfigMenuPrefab;
internal static GameObject ModListItemPrefab;
internal static GameObject SectionHeaderPrefab;
internal static GameObject IntSliderPrefab;
internal static GameObject FloatSliderPrefab;
internal static GameObject FloatStepSliderPrefab;
internal static GameObject BoolCheckBoxPrefab;
internal static GameObject EnumDropDownPrefab;
internal static GameObject TextDropDownPrefab;
internal static GameObject TextInputFieldPrefab;
internal static GameObject HexColorInputFieldPrefab;
internal static GameObject IntInputFieldPrefab;
internal static GameObject FloatInputFieldPrefab;
internal static GameObject GenericButtonPrefab;
internal static Sprite DefaultModIcon;
internal static Sprite LethalConfigModIcon;
internal static void Init()
{
_assetBundle = AssetBundle.LoadFromFile(PathUtils.PathForResourceInAssembly("ainavt_lethalconfig"));
if ((Object)(object)_assetBundle == (Object)null)
{
LogUtils.LogError("Failed to load LethalConfig bundle.");
return;
}
LoadAsset<GameObject>("prefabs/ConfigMenuManager.prefab", out ConfigMenuManagerPrefab);
LoadAsset<GameObject>("prefabs/ConfigMenuNotification.prefab", out ConfigMenuNotificationPrefab);
LoadAsset<GameObject>("prefabs/ConfigMenuColorPicker.prefab", out ConfigMenuColorPickerPrefab);
LoadAsset<GameObject>("prefabs/ConfigMenu.prefab", out ConfigMenuPrefab);
LoadAsset<GameObject>("prefabs/ModListItem.prefab", out ModListItemPrefab);
if (Configs.AddSectionButtons.Value)
{
LoadAsset<GameObject>("prefabs/components/SectionHeader WithButton.prefab", out SectionHeaderPrefab);
}
else
{
LoadAsset<GameObject>("prefabs/components/SectionHeader Old.prefab", out SectionHeaderPrefab);
}
LoadAsset<GameObject>("prefabs/components/IntSliderItem.prefab", out IntSliderPrefab);
LoadAsset<GameObject>("prefabs/components/FloatSliderItem.prefab", out FloatSliderPrefab);
LoadAsset<GameObject>("prefabs/components/FloatStepSliderItem.prefab", out FloatStepSliderPrefab);
LoadAsset<GameObject>("prefabs/components/BoolCheckBoxItem.prefab", out BoolCheckBoxPrefab);
LoadAsset<GameObject>("prefabs/components/EnumDropDownItem.prefab", out EnumDropDownPrefab);
LoadAsset<GameObject>("prefabs/components/TextDropDownItem.prefab", out TextDropDownPrefab);
LoadAsset<GameObject>("prefabs/components/TextInputFieldItem.prefab", out TextInputFieldPrefab);
LoadAsset<GameObject>("prefabs/components/HexColorInputFieldItem.prefab", out HexColorInputFieldPrefab);
LoadAsset<GameObject>("prefabs/components/IntInputFieldItem.prefab", out IntInputFieldPrefab);
LoadAsset<GameObject>("prefabs/components/FloatInputFieldItem.prefab", out FloatInputFieldPrefab);
LoadAsset<GameObject>("prefabs/components/GenericButtonItem.prefab", out GenericButtonPrefab);
LoadAsset<Sprite>("sprite/unknown-icon.png", out DefaultModIcon);
LoadAsset<Sprite>("icon.png", out LethalConfigModIcon);
LogUtils.LogDebug("Finished loading assets.");
}
private static void LoadAsset<T>(string assetName, out T asset) where T : Object
{
string text = "Assets/" + assetName;
asset = _assetBundle.LoadAsset<T>(text);
if ((Object)(object)asset == (Object)null)
{
LogUtils.LogError("Failed to load asset (" + text + ")");
}
}
}
internal static class LogUtils
{
private static ManualLogSource _logSource;
public static void Init(string pluginGuid)
{
_logSource = Logger.CreateLogSource(pluginGuid);
}
public static void LogDebug(string message)
{
ManualLogSource logSource = _logSource;
if (logSource != null)
{
logSource.LogDebug((object)message);
}
}
public static void LogInfo(string message)
{
ManualLogSource logSource = _logSource;
if (logSource != null)
{
logSource.LogInfo((object)message);
}
}
public static void LogWarning(string message)
{
ManualLogSource logSource = _logSource;
if (logSource != null)
{
logSource.LogWarning((object)message);
}
}
public static void LogError(string message)
{
ManualLogSource logSource = _logSource;
if (logSource != null)
{
logSource.LogError((object)message);
}
}
public static void LogFatal(string message)
{
ManualLogSource logSource = _logSource;
if (logSource != null)
{
logSource.LogFatal((object)message);
}
}
}
internal static class MenusUtils
{
[Serializable]
[CompilerGenerated]
private sealed class <>c
{
public static readonly <>c <>9 = new <>c();
public static UnityAction <>9__0_0;
public static Func<Button, GameObject> <>9__0_1;
public static Func<GameObject, RectTransform> <>9__0_3;
public static Func<RectTransform, float> <>9__0_4;
public static Func<float, float, float> <>9__0_5;
internal void <InjectMenu>b__0_0()
{
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
}
internal GameObject <InjectMenu>b__0_1(Button b)
{
return ((Component)b).gameObject;
}
internal RectTransform <InjectMenu>b__0_3(GameObject b)
{
Transform transform = b.transform;
return (RectTransform)(object)((transform is RectTransform) ? transform : null);
}
internal float <InjectMenu>b__0_4(RectTransform t)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
return t.anchoredPosition.y;
}
internal float <InjectMenu>b__0_5(float y1, float y2)
{
return Mathf.Abs(y2 - y1);
}
}
internal static void InjectMenu(Transform parentTransform, Transform mainButtonsTransform, GameObject quitButton)
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_0120: Unknown result type (might be due to invalid IL or missing references)
//IL_012a: Expected O, but got Unknown
//IL_0141: Unknown result type (might be due to invalid IL or missing references)
//IL_014b: Expected O, but got Unknown
//IL_016f: 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: Expected O, but got Unknown
//IL_028f: Unknown result type (might be due to invalid IL or missing references)
//IL_029a: Unknown result type (might be due to invalid IL or missing references)
//IL_029f: Unknown result type (might be due to invalid IL or missing references)
//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
//IL_02de: Unknown result type (might be due to invalid IL or missing references)
//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
Object.Instantiate<GameObject>(Assets.ConfigMenuManagerPrefab, parentTransform, true).transform.localPosition = Vector3.zero;
GameObject obj = Object.Instantiate<GameObject>(Assets.ConfigMenuPrefab, parentTransform, false);
obj.transform.localPosition = Vector3.zero;
obj.transform.localScale = Vector3.one;
obj.transform.localRotation = Quaternion.identity;
obj.SetActive(false);
GameObject obj2 = Object.Instantiate<GameObject>(Assets.ConfigMenuNotificationPrefab, parentTransform, false);
obj2.transform.localPosition = Vector3.zero;
obj2.transform.localScale = Vector3.one;
obj2.transform.localRotation = Quaternion.identity;
obj2.SetActive(false);
GameObject obj3 = Object.Instantiate<GameObject>(Assets.ConfigMenuColorPickerPrefab, parentTransform, false);
obj3.transform.localPosition = Vector3.zero;
obj3.transform.localScale = Vector3.one;
obj3.transform.localRotation = Quaternion.identity;
obj3.SetActive(false);
GameObject clonedButton = Object.Instantiate<GameObject>(quitButton, mainButtonsTransform);
((UnityEventBase)clonedButton.GetComponent<Button>().onClick).RemoveAllListeners();
clonedButton.GetComponent<Button>().onClick = new ButtonClickedEvent();
((UnityEvent)clonedButton.GetComponent<Button>().onClick).AddListener(new UnityAction(ConfigMenuManager.ShowConfigMenu));
ButtonClickedEvent onClick = clonedButton.GetComponent<Button>().onClick;
object obj4 = <>c.<>9__0_0;
if (obj4 == null)
{
UnityAction val = delegate
{
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
};
<>c.<>9__0_0 = val;
obj4 = (object)val;
}
((UnityEvent)onClick).AddListener((UnityAction)obj4);
((TMP_Text)clonedButton.GetComponentInChildren<TextMeshProUGUI>()).text = "> LethalConfig";
List<GameObject> source = (from b in ((Component)mainButtonsTransform).GetComponentsInChildren<Button>()
select ((Component)b).gameObject).ToList();
List<float> list = (from t in source.Where((GameObject b) => (Object)(object)b != (Object)(object)clonedButton).Select(delegate(GameObject b)
{
Transform transform = b.transform;
return (RectTransform)(object)((transform is RectTransform) ? transform : null);
})
select t.anchoredPosition.y).ToList();
float num = list.Zip(list.Skip(1), (float y1, float y2) => Mathf.Abs(y2 - y1)).Min();
foreach (GameObject item in source.Where((GameObject g) => (Object)(object)g != (Object)(object)quitButton))
{
RectTransform component = item.GetComponent<RectTransform>();
component.anchoredPosition += new Vector2(0f, num);
}
clonedButton.GetComponent<RectTransform>().anchoredPosition = quitButton.GetComponent<RectTransform>().anchoredPosition + new Vector2(0f, num);
}
}
internal static class PathUtils
{
public static string PathForResourceInAssembly(string resourceName, Assembly assembly = null)
{
return Path.Combine(Path.GetDirectoryName((assembly ?? Assembly.GetCallingAssembly()).Location), resourceName);
}
}
}
namespace LethalConfig.Patches
{
[HarmonyPatch(typeof(MenuManager))]
internal class MenuManagerPatches
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
public static void StartPostFix(MenuManager __instance)
{
((MonoBehaviour)__instance).StartCoroutine(DelayedMainMenuInjection());
}
private static IEnumerator DelayedMainMenuInjection()
{
yield return (object)new WaitForSeconds(0f);
InjectToMainMenu();
}
private static void InjectToMainMenu()
{
LogUtils.LogDebug("Injecting mod config menu into main menu...");
GameObject val = GameObject.Find("MenuContainer");
if (!Object.op_Implicit((Object)(object)val))
{
return;
}
Transform val2 = val.transform.Find("MainButtons");
if (Object.op_Implicit((Object)(object)val2))
{
Transform val3 = val2.Find("QuitButton");
if (Object.op_Implicit((Object)(object)val3))
{
MenusUtils.InjectMenu(val.transform, val2, ((Component)val3).gameObject);
}
}
}
}
[HarmonyPatch(typeof(QuickMenuManager))]
internal class QuickMenuManagerPatches
{
[HarmonyPatch("CloseQuickMenuPanels")]
[HarmonyPostfix]
public static void CloseQuickMenuPanelsPostFix(QuickMenuManager __instance)
{
ConfigMenu componentInChildren = ((Component)__instance.menuContainer.transform).GetComponentInChildren<ConfigMenu>(true);
if (Object.op_Implicit((Object)(object)componentInChildren))
{
componentInChildren.Close(animated: false);
}
ConfigMenuNotification componentInChildren2 = ((Component)__instance.menuContainer.transform).GetComponentInChildren<ConfigMenuNotification>(true);
if (Object.op_Implicit((Object)(object)componentInChildren2))
{
componentInChildren2.Close(animated: false);
}
}
[HarmonyPatch("Start")]
[HarmonyPostfix]
public static void StartPostFix(QuickMenuManager __instance)
{
LogUtils.LogDebug("Injecting mod config menu into quick menu...");
GameObject menuContainer = __instance.menuContainer;
if (!Object.op_Implicit((Object)(object)menuContainer))
{
return;
}
Transform val = menuContainer.transform.Find("MainButtons");
if (Object.op_Implicit((Object)(object)val))
{
Transform val2 = val.Find("Quit");
if (Object.op_Implicit((Object)(object)val2))
{
MenusUtils.InjectMenu(menuContainer.transform, val, ((Component)val2).gameObject);
}
}
}
}
[HarmonyPatch(typeof(StartOfRound))]
internal class StartOfRoundPatches
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
public static void StartPostFix()
{
LethalConfigManager.RunLateAutoGeneration();
}
}
}
namespace LethalConfig.MonoBehaviours
{
internal class ConfigInfoBox : MonoBehaviour
{
public TextMeshProUGUI configInfoText;
public void SetConfigInfo(string configInfo)
{
((TMP_Text)configInfoText).text = configInfo;
}
}
internal class ConfigList : MonoBehaviour
{
public GameObject listContainerObject;
public DescriptionBox descriptionBox;
public GameObject searchBarObject;
public TMP_InputField searchInputField;
public static List<string> disabledSections = new List<string>();
public static List<SectionButton> sectionButtons = new List<SectionButton>();
private List<(SectionHeader, List<ModConfigController>)> _sections = new List<(SectionHeader, List<ModConfigController>)>();
private void OnEnable()
{
Configs.HideSearchBars.SettingChanged += delegate
{
UpdateSearchBarVisibility();
};
UpdateSearchBarVisibility();
}
private void OnDisable()
{
Configs.HideSearchBars.SettingChanged -= delegate
{
UpdateSearchBarVisibility();
};
}
internal void LoadConfigsForMod(Mod mod)
{
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
ClearConfigList();
foreach (IGrouping<string, BaseConfigItem> item in from c in mod.ConfigItems
group c by c.Section)
{
GameObject val = Object.Instantiate<GameObject>(Assets.SectionHeaderPrefab, listContainerObject.transform, true);
val.GetComponent<SectionHeader>().SetSectionName(item.Key);
val.GetComponent<SectionHeader>().SetSectionButton(item, out var thisButton);
val.transform.localPosition = Vector3.zero;
val.transform.localScale = Vector3.one;
val.transform.localRotation = Quaternion.identity;
if (thisButton != null)
{
sectionButtons.Add(thisButton);
}
List<ModConfigController> list = new List<ModConfigController>();
foreach (BaseConfigItem item2 in item)
{
ModConfigController modConfigController = CreateMenuItem(item2, thisButton);
if ((Object)(object)modConfigController != (Object)null)
{
list.Add(modConfigController);
}
}
if (list.Any())
{
_sections.Add((val.GetComponent<SectionHeader>(), list));
}
}
if ((Object)(object)searchInputField != (Object)null && !Configs.HideSearchBars.Value)
{
OnSearchValueChanged(searchInputField.text);
}
}
private ModConfigController CreateMenuItem(BaseConfigItem configItem, SectionButton button = null)
{
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
GameObject val = configItem.CreateGameObjectForConfig();
ModConfigController controller = val.GetComponent<ModConfigController>();
if (!controller.SetConfigItem(configItem))
{
Object.DestroyImmediate((Object)(object)val);
return null;
}
val.transform.SetParent(listContainerObject.transform);
val.transform.localPosition = Vector3.zero;
val.transform.localScale = Vector3.one;
val.transform.localRotation = Quaternion.identity;
controller.OnHoverEnter += delegate
{
descriptionBox.ShowConfigInfo(controller.GetDescription());
ConfigMenuManager.Instance.menuAudio.PlayHoverSfx();
};
if (button != null)
{
if (Configs.SectionsDefaultClosed.Value)
{
if (!disabledSections.Contains(button.sectionName))
{
disabledSections.Add(button.sectionName);
}
val.SetActive(false);
((TMP_Text)button.buttonText).text = "Show";
}
button.AddTransform(val.transform);
}
return controller;
}
private void ClearConfigList()
{
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
foreach (Transform item in listContainerObject.transform)
{
Object.Destroy((Object)(object)((Component)item).gameObject);
}
sectionButtons.Clear();
disabledSections.Clear();
_sections.Clear();
}
private void UpdateSearchBarVisibility()
{
if (!((Object)(object)searchBarObject == (Object)null))
{
bool flag = !Configs.HideSearchBars.Value;
searchBarObject.SetActive(flag);
if (flag)
{
OnSearchValueChanged(((Object)(object)searchInputField != (Object)null) ? searchInputField.text : string.Empty);
}
else
{
OnSearchValueChanged(string.Empty);
}
}
}
public void OnSearchValueChanged(string value)
{
foreach (var section in _sections)
{
bool active = false;
if (string.IsNullOrWhiteSpace(value) || CanShowSection(value, section))
{
active = true;
}
((Component)section.Item1).gameObject.SetActive(active);
if (disabledSections.Contains(section.Item1.sectionName))
{
continue;
}
foreach (ModConfigController item in section.Item2)
{
((Component)item).gameObject.SetActive(active);
}
}
}
private bool CanShowSection(string value, (SectionHeader, List<ModConfigController>) section)
{
if (((TMP_Text)section.Item1.textMesh).text.Contains(value, StringComparison.OrdinalIgnoreCase))
{
return true;
}
foreach (ModConfigController item in section.Item2)
{
if (((TMP_Text)item.nameTextComponent).text.Contains(value, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
}
internal class ConfigMenu : MonoBehaviour
{
private static readonly int TriggerIdOpen = Animator.StringToHash("Open");
private static readonly int TriggerIdForceClose = Animator.StringToHash("ForceClose");
private static readonly int TriggerIdClose = Animator.StringToHash("Close");
public ConfigList configList;
public Animator menuAnimator;
private void Awake()
{
LethalConfigManager.AutoGenerateMissingConfigsIfNeeded();
}
public void Open()
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
AnimatorStateInfo currentAnimatorStateInfo = menuAnimator.GetCurrentAnimatorStateInfo(0);
if (!((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("ConfigMenuNormal") && !((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("ConfigMenuAppear"))
{
((Component)this).gameObject.SetActive(true);
menuAnimator.SetTrigger(TriggerIdOpen);
((Component)this).transform.SetAsLastSibling();
}
}
public void Close(bool animated = true)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
AnimatorStateInfo currentAnimatorStateInfo = menuAnimator.GetCurrentAnimatorStateInfo(0);
if (((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("ConfigMenuClosed") || ((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("ConfigMenuDisappear"))
{
return;
}
foreach (BaseConfigItem item in LethalConfigManager.Mods.SelectMany((KeyValuePair<string, Mod> m) => m.Value.ConfigItems))
{
item.CancelChanges();
}
UpdateAppearanceOfCurrentComponents();
if (!animated)
{
((Component)this).gameObject.SetActive(false);
menuAnimator.SetTrigger(TriggerIdForceClose);
}
else
{
menuAnimator.SetTrigger(TriggerIdClose);
}
}
public void OnCloseAnimationEnd()
{
((Component)this).gameObject.SetActive(false);
}
public void OnCancelButtonClicked()
{
Close();
ConfigMenuManager.Instance.menuAudio.PlayCancelSfx();
}
public void OnApplyButtonClicked()
{
List<BaseConfigItem> list = (from c in LethalConfigManager.Mods.SelectMany((KeyValuePair<string, Mod> m) => m.Value.ConfigItems)
where c.HasValueChanged
select c).ToList();
List<BaseConfigItem> list2 = list.Where((BaseConfigItem c) => c.RequiresRestart).ToList();
foreach (BaseConfigItem item in list)
{
item.ApplyChanges();
}
UpdateAppearanceOfCurrentComponents();
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
LogUtils.LogDebug($"Saved config values for {list.Count} items.");
LogUtils.LogDebug($"Modified {list2.Count} item(s) that requires a restart.");
if (list2.Count > 0)
{
ConfigMenuManager.DisplayNotification("Some of the modified settings may require a restart to take effect.", "OK");
}
}
private void UpdateAppearanceOfCurrentComponents()
{
ModConfigController[] componentsInChildren = ((Component)configList).GetComponentsInChildren<ModConfigController>();
for (int i = 0; i < componentsInChildren.Length; i++)
{
componentsInChildren[i].UpdateAppearance();
}
}
}
internal class ConfigMenuNotification : MonoBehaviour
{
private static readonly int TriggerIdOpen = Animator.StringToHash("Open");
private static readonly int TriggerIdForceClose = Animator.StringToHash("ForceClose");
private static readonly int TriggerIdClose = Animator.StringToHash("Close");
public TextMeshProUGUI messageTextComponent;
public TextMeshProUGUI buttonTextComponent;
public Animator notificationAnimator;
public void SetNotificationContent(string text, string button)
{
((TMP_Text)messageTextComponent).text = text;
((TMP_Text)buttonTextComponent).text = "[" + button + "]";
}
public void Open()
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
AnimatorStateInfo currentAnimatorStateInfo = notificationAnimator.GetCurrentAnimatorStateInfo(0);
if (!((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("NotificationNormal") && !((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("NotificationAppear"))
{
((Component)this).gameObject.SetActive(true);
notificationAnimator.SetTrigger(TriggerIdOpen);
((Component)this).transform.SetAsLastSibling();
}
}
public void Close(bool animated = true)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
AnimatorStateInfo currentAnimatorStateInfo = notificationAnimator.GetCurrentAnimatorStateInfo(0);
if (!((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("NotificationClosed") && !((AnimatorStateInfo)(ref currentAnimatorStateInfo)).IsName("NotificationDisappear"))
{
if (!animated)
{
((Component)this).gameObject.SetActive(false);
notificationAnimator.SetTrigger(TriggerIdForceClose);
}
else
{
notificationAnimator.SetTrigger(TriggerIdClose);
}
}
}
public void OnButtonClick()
{
Close();
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
}
public void OnCloseAnimationEnd()
{
((Component)this).gameObject.SetActive(false);
}
}
internal class DescriptionBox : MonoBehaviour
{
public ModInfoBox modInfoBox;
public ConfigInfoBox configInfoBox;
private void Awake()
{
((Component)modInfoBox).gameObject.SetActive(false);
((Component)configInfoBox).gameObject.SetActive(false);
}
public void ShowConfigInfo(string configInfo)
{
((Component)configInfoBox).gameObject.SetActive(true);
configInfoBox.SetConfigInfo(configInfo);
HideModInfo();
}
public void HideConfigInfo()
{
((Component)configInfoBox).gameObject.SetActive(false);
}
public void ShowModInfo(Mod mod)
{
((Component)modInfoBox).gameObject.SetActive(true);
modInfoBox.SetModInfo(mod);
HideConfigInfo();
}
public void HideModInfo()
{
((Component)modInfoBox).gameObject.SetActive(false);
}
}
internal class ModInfoBox : MonoBehaviour
{
public Image modIconImage;
public TextMeshProUGUI modInfoText;
public void SetModInfo(Mod mod)
{
modIconImage.sprite = mod.ModInfo.Icon;
((TMP_Text)modInfoText).text = $"{mod.ModInfo}";
}
}
internal class ModList : MonoBehaviour
{
public GameObject modItemPrefab;
public GameObject listContainerObject;
public GameObject searchBarObject;
public TMP_InputField searchInputField;
public ConfigList configList;
public DescriptionBox descriptionBox;
private List<ModListItem> _items;
private void Awake()
{
_items = new List<ModListItem>();
BuildModList();
}
private void OnEnable()
{
Configs.HideSearchBars.SettingChanged += delegate
{
UpdateSearchBarVisibility();
};
UpdateSearchBarVisibility();
}
private void OnDisable()
{
Configs.HideSearchBars.SettingChanged -= delegate
{
UpdateSearchBarVisibility();
};
}
private void BuildModList()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
_items.Clear();
foreach (Transform item in listContainerObject.transform)
{
Object.Destroy((Object)(object)((Component)item).gameObject);
}
foreach (Mod mod in from m in LethalConfigManager.Mods.Values
orderby m.ModInfo.Guid != "ainavt.lc.lethalconfig", m.IsAutoGenerated, m.ModInfo.Name
select m)
{
GameObject val = Object.Instantiate<GameObject>(modItemPrefab, listContainerObject.transform);
val.transform.localScale = Vector3.one;
val.transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
ModListItem component = val.GetComponent<ModListItem>();
component.Mod = mod;
component.ModSelected += ModSelected;
component.OnHoverEnter += delegate
{
descriptionBox.ShowModInfo(mod);
ConfigMenuManager.Instance.menuAudio.PlayHoverSfx();
};
component.OnHoverExit += delegate
{
descriptionBox.HideModInfo();
};
_items.Add(val.GetComponent<ModListItem>());
}
}
private void ModSelected(Mod mod)
{
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
configList.LoadConfigsForMod(mod);
_items.First((ModListItem i) => i.Mod == mod).SetSelected(selected: true);
foreach (ModListItem item in _items.Where((ModListItem i) => i.Mod != mod))
{
item.SetSelected(selected: false);
}
}
private void UpdateSearchBarVisibility()
{
if (!((Object)(object)searchBarObject == (Object)null))
{
bool flag = !Configs.HideSearchBars.Value;
searchBarObject.SetActive(flag);
if (flag)
{
OnSearchValueChanged(((Object)(object)searchInputField != (Object)null) ? searchInputField.text : string.Empty);
}
else
{
OnSearchValueChanged(string.Empty);
}
}
}
public void OnSearchValueChanged(string value)
{
foreach (ModListItem item in _items)
{
if (item.Mod.ModInfo.Name.Contains(value, StringComparison.OrdinalIgnoreCase) || string.IsNullOrWhiteSpace(value))
{
((Component)item).gameObject.SetActive(true);
}
else
{
((Component)item).gameObject.SetActive(false);
}
}
}
}
internal class ModListItem : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
{
public delegate void OnHoverHandler();
internal delegate void ModSelectedHandler(Mod mod);
public TextMeshProUGUI textMesh;
public GameObject selectedBorder;
public Image modIcon;
private Mod _mod;
internal Mod Mod
{
get
{
return _mod;
}
set
{
_mod = value;
((TMP_Text)textMesh).text = _mod.ModInfo.Name;
modIcon.sprite = _mod.ModInfo.Icon;
}
}
public event OnHoverHandler OnHoverEnter;
public event OnHoverHandler OnHoverExit;
internal event ModSelectedHandler ModSelected;
public void OnPointerEnter(PointerEventData eventData)
{
this.OnHoverEnter?.Invoke();
}
public void OnPointerExit(PointerEventData eventData)
{
this.OnHoverExit?.Invoke();
}
public void OnClick()
{
this.ModSelected?.Invoke(_mod);
}
public void SetSelected(bool selected)
{
selectedBorder.SetActive(selected);
}
public string GetDescription()
{
return _mod.ModInfo.Name + "\n" + _mod.ModInfo.Guid + "\n" + _mod.ModInfo.Version;
}
}
internal class SectionHeader : MonoBehaviour
{
public TextMeshProUGUI textMesh;
public Button sectionButton;
public TextMeshProUGUI buttonTextMesh;
public string sectionName { get; private set; }
public void SetSectionName(string sectionName)
{
this.sectionName = sectionName;
((TMP_Text)textMesh).text = "[" + sectionName + "]";
}
public void SetSectionButton(IGrouping<string, BaseConfigItem> section, out SectionButton thisButton)
{
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Expected O, but got Unknown
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Expected O, but got Unknown
if (!Configs.AddSectionButtons.Value)
{
thisButton = null;
return;
}
((UnityEventBase)sectionButton.onClick).RemoveAllListeners();
sectionButton.onClick = new ButtonClickedEvent();
((UnityEvent)sectionButton.onClick).AddListener((UnityAction)delegate
{
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
OnToggle(section);
});
((TMP_Text)buttonTextMesh).text = "Hide";
thisButton = new SectionButton(section.Key, section.ToList(), buttonTextMesh);
}
private void OnToggle(IGrouping<string, BaseConfigItem> section)
{
if (!ConfigList.disabledSections.Contains(section.Key))
{
ToggleSection(state: false, section);
}
else
{
ToggleSection(state: true, section);
}
}
private void ToggleSection(bool state, IGrouping<string, BaseConfigItem> section)
{
int num = 0;
if (!state)
{
foreach (SectionButton sectionButton in ConfigList.sectionButtons)
{
if (!(sectionButton.sectionName == section.Key))
{
continue;
}
foreach (Transform item in sectionButton.transformsInSection)
{
num++;
((Component)item).gameObject.SetActive(false);
((TMP_Text)buttonTextMesh).text = "Show";
}
}
LogUtils.LogDebug($"{num} config item(s) hidden in section: {section.Key}");
ConfigList.disabledSections.Add(section.Key);
return;
}
foreach (SectionButton sectionButton2 in ConfigList.sectionButtons)
{
if (!(sectionButton2.sectionName == section.Key))
{
continue;
}
foreach (Transform item2 in sectionButton2.transformsInSection)
{
num++;
((Component)item2).gameObject.SetActive(true);
((TMP_Text)buttonTextMesh).text = "Hide";
}
}
LogUtils.LogDebug($"{num} config item(s) shown in section: {section.Key}");
ConfigList.disabledSections.Remove(section.Key);
}
}
internal class SectionButton
{
internal string sectionName = "";
internal List<BaseConfigItem> itemsInSection = new List<BaseConfigItem>();
internal List<Transform> transformsInSection = new List<Transform>();
internal TextMeshProUGUI buttonText;
internal SectionButton(string sectionName, List<BaseConfigItem> itemsInSection, TextMeshProUGUI button)
{
this.sectionName = sectionName;
this.itemsInSection = itemsInSection;
buttonText = button;
}
internal void AddTransform(Transform item)
{
if (!transformsInSection.Contains(item))
{
transformsInSection.Add(item);
}
}
}
internal class Tooltip : MonoBehaviour
{
public TextMeshProUGUI textComponent;
private RectTransform _rectTransform;
private Camera _uiCamera;
public void SetText(string text)
{
((TMP_Text)textComponent).text = text;
}
public void SetTarget(GameObject newTargetGameObject)
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
((Component)this).transform.position = newTargetGameObject.transform.position;
}
}
internal class TooltipSystem : MonoBehaviour
{
private static TooltipSystem _instance;
public Tooltip tooltip;
private void Awake()
{
_instance = this;
}
public static void Show(string content, GameObject target)
{
if (!((Object)(object)_instance == (Object)null))
{
((Component)_instance.tooltip).gameObject.SetActive(true);
_instance.tooltip.SetText(content);
_instance.tooltip.SetTarget(target);
}
}
public static void Hide()
{
if (!((Object)(object)_instance == (Object)null))
{
((Component)_instance.tooltip).gameObject.SetActive(false);
}
}
}
internal class TooltipTrigger : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
{
public string tooltipText;
public void OnPointerEnter(PointerEventData eventData)
{
TooltipSystem.Show(tooltipText, ((Component)this).gameObject);
}
public void OnPointerExit(PointerEventData eventData)
{
TooltipSystem.Hide();
}
}
internal class VersionLabel : MonoBehaviour
{
private void Start()
{
((TMP_Text)((Component)this).GetComponent<TextMeshProUGUI>()).text = "LethalConfig v1.4.6";
}
}
}
namespace LethalConfig.MonoBehaviours.Managers
{
internal class ConfigMenuAudioManager : MonoBehaviour
{
[FormerlySerializedAs("confirmSFX")]
public AudioClip confirmSfx;
[FormerlySerializedAs("cancelSFX")]
public AudioClip cancelSfx;
[FormerlySerializedAs("selectSFX")]
public AudioClip selectSfx;
[FormerlySerializedAs("hoverSFX")]
public AudioClip hoverSfx;
[FormerlySerializedAs("changeValueSFX")]
public AudioClip changeValueSfx;
public AudioSource audioSource;
public void PlayConfirmSfx()
{
audioSource.PlayOneShot(confirmSfx);
}
public void PlayCancelSfx()
{
audioSource.PlayOneShot(cancelSfx);
}
public void PlayHoverSfx()
{
audioSource.PlayOneShot(hoverSfx);
}
public void PlaySelectSfx()
{
audioSource.PlayOneShot(selectSfx);
}
public void PlayChangeValueSfx()
{
audioSource.PlayOneShot(changeValueSfx);
}
}
internal class ConfigMenuManager : MonoBehaviour
{
public ConfigMenuAudioManager menuAudio;
public static ConfigMenuManager Instance { get; private set; }
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
public static void ShowConfigMenu()
{
ConfigMenu configMenu = Object.FindObjectOfType<ConfigMenu>(true);
if (!Object.op_Implicit((Object)(object)configMenu))
{
LogUtils.LogWarning("ConfigMenu object not found");
}
else
{
configMenu.Open();
}
}
public static void DisplayNotification(string message, string button)
{
ConfigMenuNotification configMenuNotification = Object.FindObjectOfType<ConfigMenuNotification>(true);
if (!Object.op_Implicit((Object)(object)configMenuNotification))
{
LogUtils.LogWarning("Notification object not found");
return;
}
configMenuNotification.SetNotificationContent(message, button);
configMenuNotification.Open();
EventSystem.current.SetSelectedGameObject(((Component)((Component)configMenuNotification).GetComponentInChildren<Button>()).gameObject);
}
public static void ShowColorPicker(string name, string hexColor, Action<string> colorSelectedCallback)
{
ConfigMenuColorPicker configMenuColorPicker = Object.FindObjectOfType<ConfigMenuColorPicker>(true);
if (!Object.op_Implicit((Object)(object)configMenuColorPicker))
{
LogUtils.LogWarning("ColorPicker object not found");
return;
}
configMenuColorPicker.SetColorPickerContent(name, hexColor, colorSelectedCallback);
configMenuColorPicker.Open();
}
}
}
namespace LethalConfig.MonoBehaviours.Components
{
internal class BoolCheckBoxController : ModConfigController<BoolCheckBoxConfigItem, bool>
{
public Toggle toggleComponent;
public override void UpdateAppearance()
{
base.UpdateAppearance();
toggleComponent.SetIsOnWithoutNotify(base.ConfigItem.CurrentValue);
}
protected override void OnSetConfigItem()
{
toggleComponent.SetIsOnWithoutNotify(base.ConfigItem.CurrentValue);
UpdateAppearance();
}
public void OnCheckBoxValueChanged(bool value)
{
base.ConfigItem.CurrentValue = value;
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
}
internal class EnumDropDownController : ModConfigController
{
public TMP_Dropdown dropdownComponent;
private List<string> _enumNames = new List<string>();
private Type _enumType;
private void OnDestroy()
{
BaseConfigItem.OnCurrentValueChanged -= OnCurrentValueChanged;
}
public override string GetDescription()
{
return base.GetDescription() + "\n\nDefault: " + Enum.GetName(_enumType, BaseConfigItem.BoxedDefaultValue);
}
public override void UpdateAppearance()
{
base.UpdateAppearance();
int valueWithoutNotify = _enumNames.FindIndex((string e) => e == Enum.GetName(_enumType, BaseConfigItem.CurrentBoxedValue));
dropdownComponent.SetValueWithoutNotify(valueWithoutNotify);
}
protected override void OnSetConfigItem()
{
BaseConfigItem.OnCurrentValueChanged += OnCurrentValueChanged;
_enumType = BaseConfigItem.BaseConfigEntry.SettingType;
_enumNames = Enum.GetNames(_enumType).ToList();
dropdownComponent.ClearOptions();
dropdownComponent.AddOptions(_enumNames);
int valueWithoutNotify = _enumNames.FindIndex((string e) => e == Enum.GetName(_enumType, BaseConfigItem.CurrentBoxedValue));
dropdownComponent.SetValueWithoutNotify(valueWithoutNotify);
UpdateAppearance();
}
public void OnDropDownValueChanged(int index)
{
BaseConfigItem.CurrentBoxedValue = Enum.Parse(_enumType, _enumNames[index]);
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
private void OnCurrentValueChanged()
{
UpdateAppearance();
}
}
internal class FloatInputFieldController : ModConfigController<FloatInputFieldConfigItem, float>
{
public TMP_InputField textInputField;
public override string GetDescription()
{
string text = base.GetDescription();
if (base.ConfigItem.MinValue != float.MinValue)
{
text += $"\nMin: {base.ConfigItem.MinValue:0.0#}";
}
if (base.ConfigItem.MaxValue != float.MaxValue)
{
text += $"\nMax: {base.ConfigItem.MaxValue:0.0#}";
}
return text;
}
protected override void OnSetConfigItem()
{
textInputField.SetTextWithoutNotify($"{base.ConfigItem.CurrentValue}");
UpdateAppearance();
}
public void OnInputFieldEndEdit(string value)
{
if (float.TryParse(value, out var result))
{
base.ConfigItem.CurrentValue = Math.Clamp(result, base.ConfigItem.MinValue, base.ConfigItem.MaxValue);
}
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public override void UpdateAppearance()
{
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
base.UpdateAppearance();
textInputField.SetTextWithoutNotify($"{base.ConfigItem.CurrentValue}");
((Transform)textInputField.textComponent.rectTransform).localPosition = Vector3.zero;
}
}
internal class FloatSliderController : ModConfigController<FloatSliderConfigItem, float>
{
public Slider sliderComponent;
public TMP_InputField valueInputField;
public override string GetDescription()
{
return $"{base.GetDescription()}\nMin: {base.ConfigItem.MinValue:0.0#}\nMax: {base.ConfigItem.MaxValue:0.0#}";
}
protected override void OnSetConfigItem()
{
sliderComponent.SetValueWithoutNotify(base.ConfigItem.CurrentValue);
sliderComponent.maxValue = base.ConfigItem.MaxValue;
sliderComponent.minValue = base.ConfigItem.MinValue;
UpdateAppearance();
}
public void OnSliderValueChanged(float value)
{
base.ConfigItem.CurrentValue = value;
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public void OnInputFieldEndEdit(string value)
{
if (float.TryParse(value, out var result))
{
base.ConfigItem.CurrentValue = Math.Clamp(result, base.ConfigItem.MinValue, base.ConfigItem.MaxValue);
}
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public override void UpdateAppearance()
{
base.UpdateAppearance();
sliderComponent.SetValueWithoutNotify(base.ConfigItem.CurrentValue);
valueInputField.SetTextWithoutNotify($"{base.ConfigItem.CurrentValue:0.0#}");
}
}
internal class FloatStepSliderController : ModConfigController<FloatStepSliderConfigItem, float>
{
public Slider sliderComponent;
public TMP_InputField valueInputField;
public override string GetDescription()
{
return $"{base.GetDescription()}\nMin: {base.ConfigItem.MinValue:0.0#}\nMax: {base.ConfigItem.MaxValue:0.0#}";
}
protected override void OnSetConfigItem()
{
sliderComponent.SetValueWithoutNotify(base.ConfigItem.CurrentValue);
int num = (int)MathF.Ceiling((base.ConfigItem.MaxValue - base.ConfigItem.MinValue) / MathF.Max(base.ConfigItem.Step, float.Epsilon));
sliderComponent.maxValue = num;
sliderComponent.minValue = 0f;
sliderComponent.wholeNumbers = true;
UpdateAppearance();
}
public void OnSliderValueChanged(float value)
{
base.ConfigItem.CurrentValue = MathF.Round(base.ConfigItem.MinValue + base.ConfigItem.Step * (float)(int)value, 4);
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public void OnInputFieldEndEdit(string value)
{
if (float.TryParse(value, out var result))
{
base.ConfigItem.CurrentValue = Math.Clamp(result, base.ConfigItem.MinValue, base.ConfigItem.MaxValue);
}
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public override void UpdateAppearance()
{
base.UpdateAppearance();
sliderComponent.SetValueWithoutNotify((base.ConfigItem.CurrentValue - base.ConfigItem.MinValue) / MathF.Max(base.ConfigItem.Step, float.Epsilon));
valueInputField.SetTextWithoutNotify($"{base.ConfigItem.CurrentValue:0.0#}");
}
}
internal class GenericButtonController : ModConfigController
{
public TextMeshProUGUI buttonTextComponent;
private GenericButtonConfigItem ConfigItem => BaseConfigItem as GenericButtonConfigItem;
public override void UpdateAppearance()
{
base.UpdateAppearance();
((TMP_Text)buttonTextComponent).text = ConfigItem?.ButtonOptions?.ButtonText ?? "Button";
}
protected override void OnSetConfigItem()
{
UpdateAppearance();
}
public void OnButtonClicked()
{
ConfigMenuManager.Instance.menuAudio.PlayConfirmSfx();
ConfigItem?.ButtonOptions?.ButtonHandler?.Invoke();
}
}
internal class HexColorInputFieldController : ModConfigController<HexColorInputFieldConfigItem, string>
{
public TMP_InputField textInputField;
public Image colorPreviewImage;
protected override void OnSetConfigItem()
{
textInputField.text = base.ConfigItem.CurrentValue;
UpdateAppearance();
}
public override void UpdateAppearance()
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
base.UpdateAppearance();
textInputField.text = base.ConfigItem.CurrentValue;
((Transform)textInputField.textComponent.rectTransform).localPosition = Vector3.zero;
UpdateColorPreviewImage(base.ConfigItem.CurrentValue);
}
public void UpdateColorPreviewImage(string hexColor)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
Color color = default(Color);
if (ColorUtility.TryParseHtmlString(hexColor, ref color))
{
((Graphic)colorPreviewImage).color = color;
}
}
public void OnInputFieldValueChanged(string value)
{
UpdateColorPreviewImage(value);
}
public void OnInputFieldEndEdit(string value)
{
base.ConfigItem.CurrentValue = value.Trim();
UpdateAppearance();
ConfigMenuManager.Instance.menuAudio.PlayChangeValueSfx();
}
public void OnColorPickerButtonClick()
{
ConfigMenuManager.ShowColorPicker(base.ConfigItem.Name, base.ConfigItem.CurrentValue, delegate(string newHexColor)
{
base.ConfigItem.Cur