using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Jotunn; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("RavenwoodRegions")] [assembly: AssemblyDescription("A Valheim mod that adds custom World and Biome Gates with Light and Banners.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("James Jones TV")] [assembly: AssemblyProduct("Ravenwood Regions")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")] [assembly: AssemblyFileVersion("1.0.2")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.2.0")] namespace RavenwoodRegions; public class BannerInteraction : MonoBehaviour { private Cloth _cloth; private float _lastPush; private void Awake() { _cloth = ((Component)this).GetComponentInChildren(true); } private void OnTriggerStay(Collider other) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_cloth == (Object)null) { return; } Character componentInParent = ((Component)other).GetComponentInParent(); if (!((Object)(object)componentInParent == (Object)null) && !(Time.time - _lastPush < 0.05f)) { _lastPush = Time.time; Vector3 position = ((Component)other).transform.position; Vector3 position2 = ((Component)this).transform.position; Vector3 val = position2 - position; val.y = 0f; float magnitude = ((Vector3)(ref val)).magnitude; if (!(magnitude < 0.01f)) { ((Vector3)(ref val)).Normalize(); float num = Mathf.Clamp01(1.5f - magnitude) * 15f; _cloth.externalAcceleration = val * num; _cloth.bendingStiffness = 0.1f; _cloth.stretchingStiffness = 0.3f; ((MonoBehaviour)this).CancelInvoke("ResetCloth"); ((MonoBehaviour)this).Invoke("ResetCloth", 0.25f); } } } private void ResetCloth() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_cloth == (Object)null)) { _cloth.externalAcceleration = Vector3.zero; _cloth.bendingStiffness = 0.4f; _cloth.stretchingStiffness = 0.6f; } } } public class BannerLampController : MonoBehaviour { public List BulbObjectNames = new List(); public Color NightColor = new Color(0.78f, 0.68f, 0.88f); public float NightIntensity = 2.5f; public float NightEmissionMultiplier = 3f; public bool NormalizePerceivedBrightness = true; private readonly List lights = new List(); private readonly List materials = new List(); private bool lastNightState = false; private bool initialized = false; private static readonly Color ReferenceColor = new Color(0.78f, 0.68f, 0.88f); private float referenceLuminance; private void Awake() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) referenceLuminance = ComputeLuminanceLinear(ReferenceColor); foreach (string name in BulbObjectNames) { Transform val = ((IEnumerable)((Component)this).GetComponentsInChildren(true)).FirstOrDefault((Func)((Transform t) => ((Object)t).name == name)); if ((Object)(object)val == (Object)null) { continue; } Light[] componentsInChildren = ((Component)val).GetComponentsInChildren(true); foreach (Light val2 in componentsInChildren) { if ((Object)(object)val2 != (Object)null) { val2.type = (LightType)2; val2.shadows = (LightShadows)0; val2.range = 5f; lights.Add(val2); } } Renderer component = ((Component)val).GetComponent(); if ((Object)(object)component != (Object)null && (Object)(object)component.material != (Object)null) { Material material = component.material; if (material.HasProperty("_Metallic")) { material.SetFloat("_Metallic", 0f); } if (material.HasProperty("_Glossiness")) { material.SetFloat("_Glossiness", 0.4f); } if (material.HasProperty("_Smoothness")) { material.SetFloat("_Smoothness", 0.4f); } material.EnableKeyword("_EMISSION"); material.globalIlluminationFlags = (MaterialGlobalIlluminationFlags)1; materials.Add(material); } } initialized = true; } private void Update() { //IL_018e: Unknown result type (might be due to invalid IL or missing references) if (!initialized || (Object)(object)EnvMan.instance == (Object)null) { return; } bool flag = EnvMan.IsNight(); if (flag != lastNightState) { lastNightState = flag; float intensity = (flag ? NightIntensity : 0f); ApplyState(intensity); } foreach (Light light in lights) { if ((Object)(object)light == (Object)null) { continue; } if (flag) { if (!((Behaviour)light).enabled) { ((Behaviour)light).enabled = true; } if (light.intensity <= 0f) { light.intensity = NightIntensity; } ((Behaviour)light).enabled = false; ((Behaviour)light).enabled = true; light.range = 5f; light.renderMode = (LightRenderMode)1; } else { light.intensity = 0f; ((Behaviour)light).enabled = false; } } foreach (Material material in materials) { if ((Object)(object)material == (Object)null) { continue; } if (flag) { if (!material.IsKeywordEnabled("_EMISSION")) { material.EnableKeyword("_EMISSION"); } } else { material.SetColor("_EmissionColor", Color.black); } } } private void ApplyState(float intensity) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) float num = intensity; if (NormalizePerceivedBrightness && intensity > 0f) { float num2 = ComputeLuminanceLinear(NightColor); if (num2 > 0.0001f && referenceLuminance > 0.0001f) { float num3 = referenceLuminance / num2; if (num3 < 0.5f) { num3 = 0.5f; } if (num3 > 2f) { num3 = 2f; } num = intensity * num3; } } foreach (Light light in lights) { if (!((Object)(object)light == (Object)null)) { light.color = NightColor; light.intensity = intensity; } } foreach (Material material in materials) { if (!((Object)(object)material == (Object)null)) { material.EnableKeyword("_EMISSION"); material.SetColor("_EmissionColor", NightColor * num * NightEmissionMultiplier); } } } private static float ComputeLuminanceLinear(Color c) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) Color linear = ((Color)(ref c)).linear; return 0.2126f * linear.r + 0.7152f * linear.g + 0.0722f * linear.b; } public static void AttachTo(GameObject prefab, List bulbNames, Color nightColor, float intensity = 2.5f, float emissionMultiplier = 3f) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)prefab.GetComponent() != (Object)null)) { BannerLampController bannerLampController = prefab.AddComponent(); bannerLampController.BulbObjectNames = bulbNames; bannerLampController.NightColor = nightColor; bannerLampController.NightIntensity = intensity; bannerLampController.NightEmissionMultiplier = emissionMultiplier; } } } public static class BannerLightRegistry { private class BannerLightConfig { public string BulbName; public Color Color; public float Intensity; public float Emission; public BannerLightConfig(string bulb, Color color, float intensity, float emission) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) BulbName = bulb; Color = color; Intensity = intensity; Emission = emission; } public void LoadFromConfig(ConfigFile config, string prefabName) { string text = "BannerLights"; int num = Mathf.RoundToInt(Color.r * 255f); int num2 = Mathf.RoundToInt(Color.g * 255f); int num3 = Mathf.RoundToInt(Color.b * 255f); ConfigEntry val = config.Bind(text, prefabName, $"{num},{num2},{num3} | {Intensity.ToString(CultureInfo.InvariantCulture)} | {Emission.ToString(CultureInfo.InvariantCulture)}", "RGB(0-255) | Intensity | Emission"); Parse(val.Value); } private void Parse(string value) { //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrWhiteSpace(value)) { return; } string[] array = value.Split(new char[1] { '|' }); if (array.Length == 3) { string[] array2 = array[0].Trim().Split(new char[1] { ',' }); if (array2.Length == 3 && float.TryParse(array2[0], NumberStyles.Float, CultureInfo.InvariantCulture, out var result) && float.TryParse(array2[1], NumberStyles.Float, CultureInfo.InvariantCulture, out var result2) && float.TryParse(array2[2], NumberStyles.Float, CultureInfo.InvariantCulture, out var result3)) { Color = new Color(result / 255f, result2 / 255f, result3 / 255f); } if (float.TryParse(array[1], NumberStyles.Float, CultureInfo.InvariantCulture, out var result4)) { Intensity = result4; } if (float.TryParse(array[2], NumberStyles.Float, CultureInfo.InvariantCulture, out var result5)) { Emission = result5; } } } } private static readonly Dictionary configs = new Dictionary { { "Ravenwood_Banner", new BannerLightConfig("Bolb_Ravenwood_Banner", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Ravenwood_Gate_Banner", new BannerLightConfig("Bolb_Ravenwood_Gate", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Deadwood_Banner", new BannerLightConfig("Bolb_Deadwood_Banner", new Color(0.737f, 0.043f, 0.043f), 1.9f, 1.7f) }, { "Deadwood_Gate_Banner", new BannerLightConfig("Bolb_Deadwood_Gate", new Color(0.737f, 0.043f, 0.043f), 1.9f, 1.7f) }, { "Frostwood_Banner", new BannerLightConfig("Bolb_Frostwood_Banner", new Color(0.55f, 0.9f, 1f), 1.6f, 1.3f) }, { "Frostwood_Gate_Banner", new BannerLightConfig("Bolb_Frostwood_Gate", new Color(0.55f, 0.9f, 1f), 1.6f, 1.3f) }, { "Darkwood_Banner", new BannerLightConfig("Bolb_Darkwood_Banner", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Darkwood_Gate_Banner", new BannerLightConfig("Bolb_Darkwood_Gate", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Whitewood_Banner", new BannerLightConfig("Bolb_Whitewood_Banner", new Color(1f, 1f, 1f), 1.6f, 1.8f) }, { "Whitewood_Gate_Banner", new BannerLightConfig("Bolb_Whitewood_Gate", new Color(1f, 1f, 1f), 1.6f, 1.8f) }, { "Redwood_Banner", new BannerLightConfig("Bolb_Redwood_Banner", new Color(1f, 0.165f, 0f), 1.6f, 1.8f) }, { "Redwood_Gate_Banner", new BannerLightConfig("Bolb_Redwood_Gate", new Color(1f, 0.165f, 0f), 1.6f, 1.8f) }, { "Grimgrove_Banner", new BannerLightConfig("Bolb_Grimgrove_Banner", new Color(0.18f, 0.85f, 0.3f), 1.6f, 1.8f) }, { "Grimgrove_Gate_Banner", new BannerLightConfig("Bolb_Grimgrove_Gate", new Color(0.18f, 0.85f, 0.3f), 1.6f, 1.8f) }, { "Acacia_Banner", new BannerLightConfig("Bolb_Acacia_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Acacia_Gate_Banner", new BannerLightConfig("Bolb_Acacia_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Jadewood_Banner", new BannerLightConfig("Bolb_Jadewood_Banner", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Jadewood_Gate_Banner", new BannerLightConfig("Bolb_Jadewood_Gate", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "JJ_Banner", new BannerLightConfig("Bolb_JJ_Banner", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "JJ_Gate_Banner", new BannerLightConfig("Bolb_JJ_Gate", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Scarwood_Banner", new BannerLightConfig("Bolb_Scarwood_Banner", new Color(1f, 0.6f, 0.1f), 1.6f, 1.8f) }, { "Scarwood_Gate_Banner", new BannerLightConfig("Bolb_Scarwood_Gate", new Color(1f, 0.6f, 0.1f), 1.6f, 1.8f) }, { "Sakura_Banner", new BannerLightConfig("Bolb_Sakura_Banner", new Color(1f, 0.45f, 0.65f), 1.6f, 1.8f) }, { "Sakura_Gate_Banner", new BannerLightConfig("Bolb_Sakura_Gate", new Color(1f, 0.45f, 0.65f), 1.6f, 1.8f) }, { "Slayer_Banner", new BannerLightConfig("Bolb_Slayer_Banner", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Slayer_Gate_Banner", new BannerLightConfig("Bolb_Slayer_Gate", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Egypt_Banner", new BannerLightConfig("Bolb_Egypt_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Egypt_Gate_Banner", new BannerLightConfig("Bolb_Egypt_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Rome_Banner", new BannerLightConfig("Bolb_Rome_Banner", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Rome_Gate_Banner", new BannerLightConfig("Bolb_Rome_Gate", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Snake_Banner", new BannerLightConfig("Bolb_Snake_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Snake_Gate_Banner", new BannerLightConfig("Bolb_Snake_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Jonestown_Banner", new BannerLightConfig("Bolb_Jonestown_Banner", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Jonestown_Gate_Banner", new BannerLightConfig("Bolb_Jonestown_Gate", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Jonesland_Banner", new BannerLightConfig("Bolb_Jonesland_Banner", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Jonesland_Gate_Banner", new BannerLightConfig("Bolb_Jonesland_Gate", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Sandstone_Banner", new BannerLightConfig("Bolb_Sandstone_Banner", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Sandstone_Gate_Banner", new BannerLightConfig("Bolb_Sandstone_Gate", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Dragonstone_Banner", new BannerLightConfig("Bolb_Dragonstone_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Dragonstone_Gate_Banner", new BannerLightConfig("Bolb_Dragonstone_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Murkwood_Banner", new BannerLightConfig("Bolb_Murkwood_Banner", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Murkwood_Gate_Banner", new BannerLightConfig("Bolb_Murkwood_Gate", new Color(0.74f, 0.68f, 0.88f), 1.6f, 1.6f) }, { "Pirate_1_Banner", new BannerLightConfig("Bolb_Pirate_1_Banner", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Pirate_1_Gate_Banner", new BannerLightConfig("Bolb_Pirate_1_Gate", new Color(0.3f, 1f, 0.55f), 1.6f, 1.8f) }, { "Pirate_2_Banner", new BannerLightConfig("Bolb_Pirate_2_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Pirate_2_Gate_Banner", new BannerLightConfig("Bolb_Pirate_2_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Pirate_3_Banner", new BannerLightConfig("Bolb_Pirate_3_Banner", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Pirate_3_Gate_Banner", new BannerLightConfig("Bolb_Pirate_3_Gate", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Pirate_4_Banner", new BannerLightConfig("Bolb_Pirate_4_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Pirate_4_Gate_Banner", new BannerLightConfig("Bolb_Pirate_4_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Whisperwood_Banner", new BannerLightConfig("Bolb_Whisperwood_Banner", new Color(0.9f, 0.3f, 0.78f), 1.6f, 1.6f) }, { "Whisperwood_Gate_Banner", new BannerLightConfig("Bolb_Whisperwood_Gate", new Color(0.9f, 0.3f, 0.78f), 1.6f, 1.6f) }, { "Blackwood_Banner", new BannerLightConfig("Bolb_Blackwood_Banner", new Color(0.65f, 0.85f, 1f), 1.8f, 1.6f) }, { "Blackwood_Gate_Banner", new BannerLightConfig("Bolb_Blackwood_Gate", new Color(0.65f, 0.85f, 1f), 1.8f, 1.6f) }, { "Elmwood_Banner", new BannerLightConfig("Bolb_Elmwood_Banner", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Elmwood_Gate_Banner", new BannerLightConfig("Bolb_Elmwood_Gate", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Willowwood_Banner", new BannerLightConfig("Bolb_Willowwood_Banner", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Willowwood_Gate_Banner", new BannerLightConfig("Bolb_Willowwood_Gate", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Silverstone_Banner", new BannerLightConfig("Bolb_Silverstone_Banner", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Silverstone_Gate_Banner", new BannerLightConfig("Bolb_Silverstone_Gate", new Color(0.75f, 0.9f, 0.7f), 1.6f, 1.8f) }, { "Steelstone_Banner", new BannerLightConfig("Bolb_Steelstone_Banner", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Steelstone_Gate_Banner", new BannerLightConfig("Bolb_Steelstone_Gate", new Color(0.78f, 0.68f, 0.88f), 1.8f, 1.6f) }, { "Gorilla_Banner", new BannerLightConfig("Bolb_Gorilla_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Gorilla_Gate_Banner", new BannerLightConfig("Bolb_Gorilla_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Orangutan_Banner", new BannerLightConfig("Bolb_Orangutan_Banner", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Orangutan_Gate_Banner", new BannerLightConfig("Bolb_Orangutan_Gate", new Color(1f, 0.62f, 0.1f), 1.6f, 1.8f) }, { "Mandrill_Banner", new BannerLightConfig("Bolb_Mandrill_Banner", new Color(1f, 0.6f, 0.1f), 1.6f, 1.8f) }, { "Mandrill_Gate_Banner", new BannerLightConfig("Bolb_Mandrill_Gate", new Color(1f, 0.6f, 0.1f), 1.6f, 1.8f) }, { "Eagle_Banner", new BannerLightConfig("Bolb_Eagle_Banner", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Eagle_Gate_Banner", new BannerLightConfig("Bolb_Eagle_Gate", new Color(0.2f, 0.9f, 0.55f), 1.6f, 1.8f) }, { "Wyrmwood_Banner", new BannerLightConfig("Bolb_Wyrmwood_Banner", new Color(0.737f, 0.043f, 0.043f), 1.9f, 1.7f) }, { "Wyrmwood_Gate_Banner", new BannerLightConfig("Bolb_Wyrmwood_Gate", new Color(0.737f, 0.043f, 0.043f), 1.9f, 1.7f) } }; public static void Initialize(ConfigFile config) { foreach (KeyValuePair config2 in configs) { config2.Value.LoadFromConfig(config, config2.Key); } } public static void Register(GameObject prefab) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (configs.TryGetValue(((Object)prefab).name, out var value)) { BannerLampController.AttachTo(prefab, new List { value.BulbName }, value.Color, value.Intensity, value.Emission); } } public static List GetAllColors() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) HashSet hashSet = new HashSet(); foreach (BannerLightConfig value in configs.Values) { hashSet.Add(value.Color); } return new List(hashSet); } } public class LampColorCycler : MonoBehaviour, Hoverable, Interactable { private readonly List lights = new List(); private readonly List materials = new List(); private List colors; private int currentIndex = 0; private Piece m_piece; private void Awake() { m_piece = ((Component)this).GetComponent(); colors = BannerLightRegistry.GetAllColors(); Transform[] componentsInChildren = ((Component)this).GetComponentsInChildren(true); foreach (Transform val in componentsInChildren) { if (!((Object)val).name.StartsWith("Bolb_Biome_")) { continue; } Light[] componentsInChildren2 = ((Component)val).GetComponentsInChildren(true); foreach (Light val2 in componentsInChildren2) { if ((Object)(object)val2 != (Object)null) { lights.Add(val2); } } Renderer component = ((Component)val).GetComponent(); if ((Object)(object)component != (Object)null && (Object)(object)component.material != (Object)null) { materials.Add(component.material); } } } public string GetHoverText() { string text = (((Object)(object)m_piece != (Object)null) ? m_piece.m_name : "Lamp"); return text + "\n[E] Change Light Color"; } public string GetHoverName() { return ((Object)(object)m_piece != (Object)null) ? m_piece.m_name : "Lamp"; } public bool Interact(Humanoid user, bool hold, bool alt) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) if (hold) { return false; } if (colors == null || colors.Count == 0) { return false; } currentIndex++; if (currentIndex >= colors.Count) { currentIndex = 0; } ApplyColor(colors[currentIndex]); return true; } public bool UseItem(Humanoid user, ItemData item) { return false; } private void ApplyColor(Color color) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) foreach (Light light in lights) { if (!((Object)(object)light == (Object)null)) { light.color = color; light.intensity = 2.5f; ((Behaviour)light).enabled = true; } } foreach (Material material in materials) { if (!((Object)(object)material == (Object)null)) { material.EnableKeyword("_EMISSION"); material.SetColor("_EmissionColor", color * 3f); } } } } public static class LampInteractionRegistry { private static readonly List RegisteredPrefabs = new List { "Biome_Gate_Lamp" }; public static void RegisterAll() { foreach (string registeredPrefab in RegisteredPrefabs) { GameObject prefab = PrefabManager.Instance.GetPrefab(registeredPrefab); if ((Object)(object)prefab == (Object)null) { continue; } Transform[] componentsInChildren = prefab.GetComponentsInChildren(true); foreach (Transform val in componentsInChildren) { if (((Object)val).name.StartsWith("Bolb_Biome_") && !Object.op_Implicit((Object)(object)((Component)val).GetComponent())) { ((Component)val).gameObject.AddComponent(); } } } } } [BepInPlugin("Ravenwood.Regions", "Ravenwood Regions", "1.0.2")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class RavenwoodRegions : BaseUnityPlugin { public const string PluginGUID = "Ravenwood.Regions"; public const string PluginName = "Ravenwood Regions"; public const string PluginVersion = "1.0.2"; private AssetBundle relicsBundle; public static ConfigEntry PlayerPreferredCategory; private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) new Harmony("ravenwood.regions.harmony").PatchAll(); PlayerPreferredCategory = ((BaseUnityPlugin)this).Config.Bind("UI", "CustomHammerTab", "RavenwoodRegions", "Custom hammer tab category name"); PieceManager.Instance.AddPieceCategory(PlayerPreferredCategory.Value); BannerLightRegistry.Initialize(((BaseUnityPlugin)this).Config); Assembly executingAssembly = Assembly.GetExecutingAssembly(); string text = executingAssembly.GetManifestResourceNames().FirstOrDefault((string r) => r.ToLower().Contains("regions")); if (string.IsNullOrEmpty(text)) { ((BaseUnityPlugin)this).Logger.LogError((object)"Could not find embedded asset bundle resource containing 'regions'."); return; } using (Stream stream = executingAssembly.GetManifestResourceStream(text)) { if (stream == null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Embedded asset bundle stream was null for '" + text + "'.")); return; } using MemoryStream memoryStream = new MemoryStream(); stream.CopyTo(memoryStream); relicsBundle = AssetBundle.LoadFromMemory(memoryStream.ToArray()); } if ((Object)(object)relicsBundle == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load AssetBundle from embedded resource!"); } else { PrefabManager.OnPrefabsRegistered += RegisterNow; } } private void RegisterNow() { if (!((Object)(object)relicsBundle == (Object)null)) { RelicRegistrar.RegisterAllRelics(relicsBundle); LampInteractionRegistry.RegisterAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)("[RavenwoodRegions] Registration complete. Hammer tab: '" + PlayerPreferredCategory.Value + "'.")); } } } public class RelicRegistration { public string PrefabName; public string DisplayName; public RequirementConfig[] Requirements; public string Description; public int Comfort; public RelicRegistration(string prefab, string display, RequirementConfig[] reqs, string desc, int comfort = 0) { PrefabName = prefab; DisplayName = display; Requirements = reqs; Description = desc; Comfort = comfort; } } public static class RelicRegistrar { private static bool wasAlreadyRegistered = false; public static readonly List AllRegistrations = new List { new RelicRegistration("Ravenwood_Banner", "Ravenwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Darkwood_Banner", "Darkwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Deadwood_Banner", "Deadwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Frostwood_Banner", "Frostwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whitewood_Banner", "Whitewood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Redwood_Banner", "Redwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Grimgrove_Banner", "Grimgrove Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Acacia_Banner", "Acacia Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Scarwood_Banner", "Scarwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jadewood_Banner", "Jadewood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sakura_Banner", "Sakura Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Slayer_Banner", "Slayer Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Egypt_Banner", "Egypt Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Rome_Banner", "Rome Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("JJ_Banner", "James Jones Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonestown_Banner", "Jonestown Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonesland_Banner", "Jonesland Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Murkwood_Banner", "Murkwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_1_Banner", "Pirate I Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_2_Banner", "Pirate II Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_3_Banner", "Pirate III Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_4_Banner", "Pirate IV Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whisperwood_Banner", "Whisperwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Blackwood_Banner", "Blackwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Willowwood_Banner", "Willowwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Elmwood_Banner", "Elmwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Silverstone_Banner", "Silverstone Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Steelstone_Banner", "Steelstone Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Snake_Banner", "Snake Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Gorilla_Banner", "Gorilla Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Orangutan_Banner", "Orangutan Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Mandrill_Banner", "Baboon Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Eagle_Banner", "Eagle Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sandstone_Banner", "Sandstone Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Dragonstone_Banner", "Dragonstone Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Wyrmwood_Banner", "Wyrmwood Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Wood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Ravenwood_Wall_Banner", "Ravenwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Darkwood_Wall_Banner", "Darkwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Deadwood_Wall_Banner", "Deadwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Frostwood_Wall_Banner", "Frostwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whitewood_Wall_Banner", "Whitewood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Redwood_Wall_Banner", "Redwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Grimgrove_Wall_Banner", "Grimgrove Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Acacia_Wall_Banner", "Acacia Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Scarwood_Wall_Banner", "Scarewood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jadewood_Wall_Banner", "Jadewood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sakura_Wall_Banner", "Sakura Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Slayer_Wall_Banner", "Slayer Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Egypt_Wall_Banner", "Egypt Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Rome_Wall_Banner", "Rome Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("JJ_Wall_Banner", "James Jones Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonestown_Wall_Banner", "Jonestown Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonesland_Wall_Banner", "Jonesland Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Murkwood_Wall_Banner", "Murkwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_1_Wall_Banner", "Pirate I Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_2_Wall_Banner", "Pirate II Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_3_Wall_Banner", "Pirate III Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_4_Wall_Banner", "Pirate IV Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whisperwood_Wall_Banner", "Whisperwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Blackwood_Wall_Banner", "Blackwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Willowwood_Wall_Banner", "Willowwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Elmwood_Wall_Banner", "Elmwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Silverstone_Wall_Banner", "Silverstone Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Steelstone_Wall_Banner", "Steelstone Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Snake_Wall_Banner", "Snake Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Gorilla_Wall_Banner", "Gorilla Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Orangutan_Wall_Banner", "Orangutan Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Mandrill_Wall_Banner", "Baboon Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Eagle_Wall_Banner", "Eagle Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sandstone_Wall_Banner", "Sandstone Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Dragonstone_Wall_Banner", "Dragonstone Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Wyrmwood_Wall_Banner", "Wyrmwood Wall Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("FineWood", 5, 0, true), new RequirementConfig("Feathers", 5, 0, true), new RequirementConfig("LeatherScraps", 5, 0, true), new RequirementConfig("DeerHide", 1, 0, true) }, "A custom decorative piece."), new RelicRegistration("Ravenwood_Gate_Banner", "Ravenwood Gate Banner ", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Darkwood_Gate_Banner", "Darkwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Deadwood_Gate_Banner", "Deadwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Frostwood_Gate_Banner", "Frostwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whitewood_Gate_Banner", "Whitewood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Redwood_Gate_Banner", "Redwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Grimgrove_Gate_Banner", "Grimgrove Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Acacia_Gate_Banner", "Acacia Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Scarwood_Gate_Banner", "Scarewood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jadewood_Gate_Banner", "Jadewood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sakura_Gate_Banner", "Sakura Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Slayer_Gate_Banner", "Slayer`s Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Egypt_Gate_Banner", "Egypt Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Rome_Gate_Banner", "Rome Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("JJ_Gate_Banner", "James Jones Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonestown_Gate_Banner", "Jonestown Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Jonesland_Gate_Banner", "Jonesland Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Murkwood_Gate_Banner", "Murkwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_1_Gate_Banner", "Pirate I Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_2_Gate_Banner", "Pirate II Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_3_Gate_Banner", "Pirate III Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Pirate_4_Gate_Banner", "Pirate IV Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Whisperwood_Gate_Banner", "Whisperwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Blackwood_Gate_Banner", "Blackwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Willowwood_Gate_Banner", "Willowwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Elmwood_Gate_Banner", "Elmwood Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Silverstone_Gate_Banner", "Silverstone Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Steelstone_Gate_Banner", "Steelstone Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Snake_Gate_Banner", "Snake Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Gorilla_Gate_Banner", "Gorilla Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Orangutan_Gate_Banner", "Orangutan Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Mandrill_Gate_Banner", "Baboon Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Eagle_Gate_Banner", "Eagle Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("RoundLog", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Sandstone_Gate_Banner", "Sandstone Gate Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Dragonstone_Gate_Banner", "Dragonstone Entrance Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Wyrmwood_Gate_Banner", "Wyrmwood Entrance Banner", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Biome_Gate_1", "World Gate I.", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Biome_Gate_2", "World Gate II.", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Biome_Gate_3", "World Gate III.", (RequirementConfig[])(object)new RequirementConfig[4] { new RequirementConfig("Stone", 25, 0, true), new RequirementConfig("Feathers", 25, 0, true), new RequirementConfig("LeatherScraps", 10, 0, true), new RequirementConfig("DeerHide", 5, 0, true) }, "A custom decorative piece."), new RelicRegistration("Biome_Gate_Lamp", "World Gate Lamp I.", (RequirementConfig[])(object)new RequirementConfig[2] { new RequirementConfig("Stone", 5, 0, true), new RequirementConfig("Resin", 5, 0, true) }, "A custom decorative piece.") }; public static void RegisterAllRelics(AssetBundle bundle) { if (wasAlreadyRegistered || (Object)(object)bundle == (Object)null) { return; } int num = 0; int num2 = 0; foreach (RelicRegistration allRegistration in AllRegistrations) { if (RegisterRelic(bundle, allRegistration)) { num++; } else { num2++; } } wasAlreadyRegistered = true; } private static bool RegisterRelic(AssetBundle bundle, RelicRegistration reg) { //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Expected O, but got Unknown //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Expected O, but got Unknown //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Expected O, but got Unknown //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Expected O, but got Unknown //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Expected O, but got Unknown //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Expected O, but got Unknown //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Expected O, but got Unknown //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Expected O, but got Unknown if ((Object)(object)bundle == (Object)null) { return false; } if ((Object)(object)PrefabManager.Instance.GetPrefab(reg.PrefabName) != (Object)null) { return true; } GameObject val = bundle.LoadAsset(reg.PrefabName); if ((Object)(object)val == (Object)null) { Logger.LogWarning((object)("[RavenwoodRegions] Missing prefab: " + reg.PrefabName)); return false; } ((Object)val).name = reg.PrefabName; ZNetView val2 = val.GetComponent(); if ((Object)(object)val2 == (Object)null) { val2 = val.AddComponent(); } val2.m_persistent = true; val2.m_syncInitialScale = true; if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } Piece val3 = val.GetComponent(); if ((Object)(object)val3 == (Object)null) { val3 = val.AddComponent(); } val3.m_name = reg.DisplayName; val3.m_description = reg.Description; val3.m_groundOnly = false; if (reg.PrefabName.StartsWith("Biome_Gate")) { if ((Object)(object)val3 == (Object)null) { Debug.LogError((object)("[RavenwoodRegions] " + reg.PrefabName + " missing Piece (set in Unity)")); return false; } if ((Object)(object)val2 == (Object)null) { Debug.LogError((object)("[RavenwoodRegions] " + reg.PrefabName + " missing ZNetView (set in Unity)")); return false; } } SFX_VFX_Registry.GetEffects(reg.PrefabName, out var vfxPlace, out var sfxPlace, out var destroyVFX, out var destroySFX); EffectList val4 = new EffectList(); List list = new List(); if ((Object)(object)vfxPlace != (Object)null) { list.Add(new EffectData { m_prefab = vfxPlace, m_enabled = true }); } if ((Object)(object)sfxPlace != (Object)null) { list.Add(new EffectData { m_prefab = sfxPlace, m_enabled = true }); } val4.m_effectPrefabs = list.ToArray(); val3.m_placeEffect = val4; WearNTear val5 = val.GetComponent(); if ((Object)(object)val5 == (Object)null) { val5 = val.AddComponent(); } val5.m_health = 1000f; val5.m_noRoofWear = true; EffectList val6 = new EffectList(); List list2 = new List(); if ((Object)(object)destroyVFX != (Object)null) { list2.Add(new EffectData { m_prefab = destroyVFX, m_enabled = true }); } if ((Object)(object)destroySFX != (Object)null) { list2.Add(new EffectData { m_prefab = destroySFX, m_enabled = true }); } val6.m_effectPrefabs = list2.ToArray(); val5.m_destroyedEffect = val6; if (reg.PrefabName.ToLowerInvariant().Contains("banner") && !Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (reg.Comfort > 0) { val3.m_comfort = reg.Comfort; } BannerLightRegistry.Register(val); Sprite val7 = bundle.LoadAsset(reg.PrefabName); if ((Object)(object)val7 != (Object)null) { val3.m_icon = val7; } string craftingStation = "piece_workbench"; PieceConfig val8 = new PieceConfig { PieceTable = "Hammer", Category = RavenwoodRegions.PlayerPreferredCategory.Value, CraftingStation = craftingStation, Requirements = reg.Requirements }; if (PieceManager.Instance.GetPiece(reg.PrefabName) == null) { PieceManager.Instance.AddPiece(new CustomPiece(val, true, val8)); } return true; } } public static class SFX_VFX_Registry { private static readonly HashSet WoodObjects = new HashSet { "Ravenwood_Gate_Banner", "Deadwood_Gate_Banner", "Frostwood_Gate_Banner", "Darkwood_Gate_Banner", "Whitewood_Gate_Banner", "Redwood_Gate_Banner", "Grimgrove_Gate_Banner", "Acacia_Gate_Banner", "Scarwood_Gate_Banner", "Jadewood_Gate_Banner", "JJ_Gate_Banner", "Sakura_Gate_Banner", "Slayer_Gate_Banner", "Egypt_Gate_Banner", "Rome_Gate_Banner", "Snake_Gate_Banner", "Jonestown_Gate_Banner", "Jonesland_Gate_Banner", "Sandstone_Gate_Banner", "Dragonstone_Gate_Banner", "Murkwood_Gate_Banner", "Pirate_1_Gate_Banner", "Pirate_2_Gate_Banner", "Pirate_3_Gate_Banner", "Pirate_4_Gate_Banner", "Whisperwood_Gate_Banner", "Blackwood_Gate_Banner", "Elmwood_Gate_Banner", "Willowwood_Gate_Banner", "Silverstone_Gate_Banner", "Steelstone_Gate_Banner", "Gorilla_Gate_Banner", "Orangutan_Gate_Banner", "Mandrill_Gate_Banner", "Eagle_Gate_Banner", "Wyrmwood_Gate_Banner", "Ravenwood_Banner", "Frostwood_Banner", "Deadwood_Banner", "Darkwood_Banner", "Whitewood_Banner", "Redwood_Banner", "Grimgrove_Banner", "Acacia_Banner", "Scarwood_Banner", "Jadewood_Banner", "JJ_Banner", "Sakura_Banner", "Slayer_Banner", "Egypt_Banner", "Rome_Banner", "Snake_Banner", "Jonestown_Banner", "Jonesland_Banner", "Sandstone_Banner", "Dragonstone_Banner", "Murkwood_Banner", "Pirate_1_Banner", "Pirate_2_Banner", "Pirate_3_Banner", "Pirate_4_Banner", "Whisperwood_Banner", "Blackwood_Banner", "Elmwood_Banner", "Willowwood_Banner", "Silverstone_Banner", "Steelstone_Banner", "Gorilla_Banner", "Orangutan_Banner", "Mandrill_Banner", "Eagle_Banner", "Wyrmwood_Banner", "Ravenwood_Wall_Banner", "Deadwood_Wall_Banner", "Frostwood_Wall_Banner", "Darkwood_Wall_Banner", "Whitewood_Wall_Banner", "Redwood_Wall_Banner", "Grimgrove_Wall_Banner", "Acacia_Wall_Banner", "Scarwood_Wall_Banner", "Jadewood_Wall_Banner", "JJ_Wall_Banner", "Sakura_Wall_Banner", "Slayer_Wall_Banner", "Egypt_Wall_Banner", "Rome_Wall_Banner", "Snake_Wall_Banner", "Jonestown_Wall_Banner", "Jonesland_Wall_Banner", "Sandstone_Wall_Banner", "Dragonstone_Wall_Banner", "Murkwood_Wall_Banner", "Pirate_1_Wall_Banner", "Pirate_2_Wall_Banner", "Pirate_3_Wall_Banner", "Pirate_4_Wall_Banner", "Whisperwood_Wall_Banner", "Blackwood_Wall_Banner", "Elmwood_Wall_Banner", "Willowwood_Wall_Banner", "Silverstone_Wall_Banner", "Steelstone_Wall_Banner", "Gorilla_Wall_Banner", "Orangutan_Wall_Banner", "Mandrill_Wall_Banner", "Eagle_Wall_Banner", "Wyrmwood_Wall_Banner" }; public static void GetEffects(string prefabName, out GameObject vfxPlace, out GameObject sfxPlace, out GameObject destroyVFX, out GameObject destroySFX) { if (WoodObjects.Contains(prefabName)) { ZNetScene instance = ZNetScene.instance; vfxPlace = ((instance != null) ? instance.GetPrefab("vfx_Place_wood") : null); ZNetScene instance2 = ZNetScene.instance; sfxPlace = ((instance2 != null) ? instance2.GetPrefab("sfx_build_hammer_wood") : null); ZNetScene instance3 = ZNetScene.instance; destroyVFX = ((instance3 != null) ? instance3.GetPrefab("vfx_destroyed") : null); ZNetScene instance4 = ZNetScene.instance; destroySFX = ((instance4 != null) ? instance4.GetPrefab("sfx_wood_break") : null); } else { ZNetScene instance5 = ZNetScene.instance; vfxPlace = ((instance5 != null) ? instance5.GetPrefab("vfx_Place_stone") : null); ZNetScene instance6 = ZNetScene.instance; sfxPlace = ((instance6 != null) ? instance6.GetPrefab("sfx_build_hammer_stone") : null); ZNetScene instance7 = ZNetScene.instance; destroyVFX = ((instance7 != null) ? instance7.GetPrefab("vfx_destroyed") : null); ZNetScene instance8 = ZNetScene.instance; destroySFX = ((instance8 != null) ? instance8.GetPrefab("sfx_rock_destroyed") : null); } } }