Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of MoreVanillaBuilds v1.1.5
MoreVanillaBuilds.dll
Decompiled 6 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using Jotunn; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("MoreVanillaBuilds")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("MoreVanillaBuilds")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("13e3a4c3-81da-4b3f-bcd2-295ac8f74a32")] [assembly: AssemblyFileVersion("1.1.5.0")] [assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")] [assembly: AssemblyVersion("1.1.5.0")] namespace MoreVanillaBuilds; [BepInPlugin("fr.galathil.MoreVanillaBuilds", "MoreVanillaBuilds", "1.1.5")] public class Main : BaseUnityPlugin { private const string pluginGUID = "fr.galathil.MoreVanillaBuilds"; private const string pluginName = "MoreVanillaBuilds"; private const string pluginVersion = "1.1.5"; public static ConfigFile config; private readonly Harmony harmony = new Harmony("fr.galathil.MoreVanillaBuilds"); public void Awake() { MVBLog.init(((BaseUnityPlugin)this).Logger); MVBConfig.setConfigFile(((BaseUnityPlugin)this).Config); MVBConfig.loadMainConfig(); harmony.PatchAll(); PrefabManager.OnPrefabsRegistered += Patches._ac; } } internal class MVBConfig { private static ConfigFile configFile; private static string MainSectionName = "main"; private static ConfigEntry<bool> forceAllPrefabs; private static ConfigEntry<bool> verboseMode; public static void setConfigFile(ConfigFile file) { configFile = file; } public static void loadMainConfig() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown forceAllPrefabs = configFile.Bind<bool>(MainSectionName, "forceAllPrefabs", false, new ConfigDescription("If enable, allow all filtered prefabs from the game with/within configurations (requirements).", (AcceptableValueBase)null, Array.Empty<object>())); verboseMode = configFile.Bind<bool>(MainSectionName, "verboseMode", false, new ConfigDescription("If enable, print debug informations in console.", (AcceptableValueBase)null, Array.Empty<object>())); } public static void save() { configFile.Save(); } public static MVBPrefabConfig loadPrefabConfig(GameObject prefab) { MVBPrefabConfig mVBPrefabConfig = new MVBPrefabConfig(); string text = "prefab-" + ((Object)prefab).name; mVBPrefabConfig.isEnable = configFile.Bind<bool>(text, "isEnable", false, (ConfigDescription)null); mVBPrefabConfig.category = configFile.Bind<string>(text, "category", "Misc", (ConfigDescription)null); mVBPrefabConfig.requirements = configFile.Bind<string>(text, "requirements", "", (ConfigDescription)null); return mVBPrefabConfig; } public static bool isVerbose() { return verboseMode.Value; } public static bool isForceAllPrefabs() { return forceAllPrefabs.Value; } } internal class MVBLog { private static ManualLogSource _logger; public static void init(ManualLogSource logger) { _logger = logger; } public static void info(object data) { if (MVBConfig.isVerbose()) { _logger.LogInfo(data); } } public static void prefab(GameObject prefab) { //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown info("***** " + ((Object)prefab).name + " *****"); Component[] components = prefab.GetComponents<Component>(); foreach (Component val in components) { info("-" + ((object)val).GetType().Name); PropertyInfo[] properties = ((object)prefab).GetType().GetProperties(); PropertyInfo[] array = properties; foreach (PropertyInfo propertyInfo in array) { info(" -" + propertyInfo.Name + " = " + propertyInfo.GetValue(prefab)); } } info("***** " + ((Object)prefab).name + " (childs) *****"); foreach (Transform item in prefab.transform) { Transform val2 = item; info("-" + ((Object)((Component)val2).gameObject).name); Component[] components2 = ((Component)val2).gameObject.GetComponents<Component>(); foreach (Component val3 in components2) { info(" -" + ((object)val3).GetType().Name); PropertyInfo[] properties2 = ((object)val3).GetType().GetProperties(); PropertyInfo[] array2 = properties2; foreach (PropertyInfo propertyInfo2 in array2) { info(" -" + propertyInfo2.Name + " = " + propertyInfo2.GetValue(val3)); } } } } } internal class MVBPrefabConfig { public ConfigEntry<bool> isEnable { get; set; } public ConfigEntry<string> category { get; set; } public ConfigEntry<string> requirements { get; set; } } [HarmonyPatch] internal class Patches { [HarmonyPatch(typeof(Player), "SetupPlacementGhost")] private class PlayerSetupPlacementGhost { private static void Prefix(Player __instance) { object obj; if (__instance == null) { obj = null; } else { Piece selectedPiece = __instance.GetSelectedPiece(); obj = ((selectedPiece != null) ? ((Component)selectedPiece).gameObject : null); } GameObject val = (GameObject)obj; if ((Object)(object)val != (Object)null) { settingUpPlacementGhost = true; } } private static void Postfix() { settingUpPlacementGhost = false; } } [HarmonyPatch(typeof(Piece), "DropResources")] public static class Piece_DropResources_Transpiler { private static MethodInfo method_Piece_IsPlacedByPlayer = AccessTools.Method(typeof(Piece), "IsPlacedByPlayer", (Type[])null, (Type[])null); private static FieldInfo field_Requirement_m_recover = AccessTools.Field(typeof(Requirement), "m_recover"); [HarmonyTranspiler] public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown List<CodeInstruction> list = instructions.ToList(); for (int i = 0; i < list.Count; i++) { if (CodeInstructionExtensions.Calls(list[i], method_Piece_IsPlacedByPlayer)) { list[i] = new CodeInstruction(OpCodes.Ldc_I4_1, (object)null); list.RemoveAt(i - 1); } } for (int j = 0; j < list.Count; j++) { if (CodeInstructionExtensions.LoadsField(list[j], field_Requirement_m_recover, false)) { list.RemoveRange(j - 1, 3); } } return list.AsEnumerable(); } } public static Action _ac = delegate { Prefabs.FindAndRegisterPrefabs(); }; private static bool settingUpPlacementGhost = false; public static GameObject lastPlacementGhost = null; [HarmonyPatch(typeof(ObjectDB), "Awake")] [HarmonyPostfix] private static void ObjectDBAwakePrefix() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) Scene activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name == "main")) { } } [HarmonyPatch(typeof(Object), "Internal_CloneSingle", new Type[] { typeof(Object) })] [HarmonyPrefix] private static bool ObjectInstantiate1Prefix(ref Object __result, Object data) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown if (settingUpPlacementGhost) { settingUpPlacementGhost = false; if (Prefabs.AddedPrefabs.Contains(data.name)) { Logger.LogInfo((object)("Setting up placement ghost for " + data.name)); GameObject val = new GameObject(); val.SetActive(false); Object val2 = Object.Instantiate(data, val.transform, false); Prefabs.PrepareGhostPrefab((GameObject)(object)((val2 is GameObject) ? val2 : null)); __result = Object.Instantiate(val2); Object.DestroyImmediate((Object)(object)val); return false; } } return true; } [HarmonyPatch(typeof(Player), "UpdatePlacementGhost")] [HarmonyPostfix] private static void PlayerUpdatePlacementGhostPostfix(ref GameObject ___m_placementGhost, ref int ___m_placementStatus) { lastPlacementGhost = ___m_placementGhost; if (Object.op_Implicit((Object)(object)___m_placementGhost)) { ___m_placementStatus = 0; ___m_placementGhost.GetComponent<Piece>().SetInvalidPlacementHeightlight(false); } } [HarmonyPatch(typeof(Piece), "SetCreator")] [HarmonyPrefix] private static void PieceSetCreatorPrefix(long uid, Piece __instance) { ZNetView component = ((Component)__instance).GetComponent<ZNetView>(); if (Object.op_Implicit((Object)(object)component) && !component.m_persistent) { component.m_persistent = true; ZSyncTransform component2 = ((Component)__instance).gameObject.GetComponent<ZSyncTransform>(); if ((Object)(object)component2 == (Object)null) { ((Component)__instance).gameObject.AddComponent<ZSyncTransform>(); } component2.m_syncPosition = true; component2.m_syncRotation = true; } } } internal class Prefabs { public static HashSet<string> AddedPrefabs = new HashSet<string>(); private static readonly HashSet<string> IgnoredPrefabs = new HashSet<string> { "Player", "Valkyrie", "HelmetOdin", "CapeOdin", "CastleKit_pot03", "Ravens", "TERRAIN_TEST", "PlaceMarker", "Circle_section", "guard_stone_test", "Haldor", "odin", "dvergrprops_wood_stake" }; private static HashSet<string> pieceNameCache = null; public static void FindAndRegisterPrefabs() { MVBLog.info("FindAndRegisterPrefabs()"); Dictionary<PieceCategory, string> pieceCategoriesMap = PieceManager.Instance.GetPieceCategoriesMap(); foreach (string value in pieceCategoriesMap.Values) { MVBLog.info("CATEGORY : " + value); } (from go in ZNetScene.instance.m_prefabs where (Object)(object)go.transform.parent == (Object)null && !ShouldIgnorePrefab(go) orderby ((Object)go).name select go).ToList().ForEach(CreatePrefabPiece); MVBConfig.save(); PrefabManager.OnPrefabsRegistered -= Patches._ac; } private static bool ShouldIgnorePrefab(GameObject prefab) { HashSet<string> existingPieceNames = GetExistingPieceNames(); if (existingPieceNames.Contains(((Object)prefab).name)) { MVBLog.info("ShouldIgnorePrefab(" + ((Object)prefab).name + ") -> true (already processed)"); return true; } if (IgnoredPrefabs.Contains(((Object)prefab).name)) { MVBLog.info("ShouldIgnorePrefab(" + ((Object)prefab).name + ") -> true (in hard coded filters)"); return true; } if ((Object)(object)prefab.GetComponent("Projectile") != (Object)null || (Object)(object)prefab.GetComponent("Humanoid") != (Object)null || (Object)(object)prefab.GetComponent("AnimalAI") != (Object)null || (Object)(object)prefab.GetComponent("Character") != (Object)null || (Object)(object)prefab.GetComponent("CreatureSpawner") != (Object)null || (Object)(object)prefab.GetComponent("SpawnArea") != (Object)null || (Object)(object)prefab.GetComponent("Fish") != (Object)null || (Object)(object)prefab.GetComponent("RandomFlyingBird") != (Object)null || (Object)(object)prefab.GetComponent("MusicLocation") != (Object)null || (Object)(object)prefab.GetComponent("Aoe") != (Object)null || (Object)(object)prefab.GetComponent("ItemDrop") != (Object)null || (Object)(object)prefab.GetComponent("DungeonGenerator") != (Object)null || (Object)(object)prefab.GetComponent("TerrainModifier") != (Object)null || (Object)(object)prefab.GetComponent("EventZone") != (Object)null || (Object)(object)prefab.GetComponent("LocationProxy") != (Object)null || (Object)(object)prefab.GetComponent("LootSpawner") != (Object)null || (Object)(object)prefab.GetComponent("Mister") != (Object)null || (Object)(object)prefab.GetComponent("Ragdoll") != (Object)null || (Object)(object)prefab.GetComponent("MineRock5") != (Object)null || (Object)(object)prefab.GetComponent("TombStone") != (Object)null || (Object)(object)prefab.GetComponent("LiquidVolume") != (Object)null || (Object)(object)prefab.GetComponent("Gibber") != (Object)null || (Object)(object)prefab.GetComponent("TimedDestruction") != (Object)null || (Object)(object)prefab.GetComponent("TeleportAbility") != (Object)null || (Object)(object)prefab.GetComponent("ShipConstructor") != (Object)null || (Object)(object)prefab.GetComponent("TriggerSpawner") != (Object)null || (Object)(object)prefab.GetComponent("TeleportAbility") != (Object)null || (Object)(object)prefab.GetComponent("TeleportWorld") != (Object)null || ((Object)prefab).name.StartsWith("_") || ((Object)prefab).name.StartsWith("OLD_") || ((Object)prefab).name.EndsWith("_OLD") || ((Object)prefab).name.StartsWith("vfx_") || ((Object)prefab).name.StartsWith("sfx_") || ((Object)prefab).name.StartsWith("fx_")) { MVBLog.info("ShouldIgnorePrefab(" + ((Object)prefab).name + ") -> true "); return true; } MVBLog.info("ShouldIgnorePrefab(" + ((Object)prefab).name + ") -> false "); return false; } private static HashSet<string> GetExistingPieceNames() { if (pieceNameCache == null) { IEnumerable<string> collection = from piece in Resources.FindObjectsOfTypeAll<PieceTable>().SelectMany((PieceTable pieceTable) => pieceTable.m_pieces) select ((Object)piece).name; pieceNameCache = new HashSet<string>(collection); } return pieceNameCache; } private static bool EnsureNoDuplicateZNetView(GameObject prefab) { ZNetView[] components = prefab.GetComponents<ZNetView>(); for (int i = 1; i < components.Length; i++) { Object.DestroyImmediate((Object)(object)components[i]); } return components.Length <= 1; } private static void InitPieceData(GameObject prefab) { //IL_007b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)prefab.GetComponent<Piece>() == (Object)null) { Piece val = prefab.AddComponent<Piece>(); if ((Object)(object)val != (Object)null) { val.m_enabled = true; val.m_canBeRemoved = true; val.m_groundPiece = false; val.m_groundOnly = false; val.m_noInWater = false; val.m_notOnWood = false; val.m_notOnTiltingSurface = false; val.m_notOnFloor = false; val.m_allowedInDungeons = true; val.m_onlyInTeleportArea = false; val.m_inCeilingOnly = false; val.m_cultivatedGroundOnly = false; val.m_onlyInBiome = (Biome)0; val.m_allowRotatedOverlap = true; } } } private static void CreatePrefabPiece(GameObject prefab) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Expected O, but got Unknown //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Expected O, but got Unknown //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown MVBLog.info("Starting FindAndRegisterPrefabs(" + ((Object)prefab).name + ")"); if (!EnsureNoDuplicateZNetView(prefab)) { if (MVBConfig.isVerbose()) { MVBLog.info("Ignore " + ((Object)prefab).name); } return; } MVBPrefabConfig mVBPrefabConfig = MVBConfig.loadPrefabConfig(prefab); if (!mVBPrefabConfig.isEnable.Value && !MVBConfig.isForceAllPrefabs()) { return; } PatchPrefabIfNeeded(prefab); InitPieceData(prefab); PieceConfig val = new PieceConfig { Name = ((Object)prefab).name, Description = GetPrefabFriendlyName(prefab), PieceTable = PieceTables.Hammer, Category = mVBPrefabConfig.category.Value, AllowedInDungeons = true, Icon = CreatePrefabIcon(prefab) }; if (!mVBPrefabConfig.requirements.Value.Equals("")) { string[] array = mVBPrefabConfig.requirements.Value.Split(new char[1] { ';' }); foreach (string text in array) { string[] array2 = text.Split(new char[1] { ',' }); RequirementConfig val2 = new RequirementConfig(); val2.Item = array2[0]; val2.Amount = int.Parse(array2[1]); val2.Recover = true; val.AddRequirement(val2); } } CustomPiece val3 = new CustomPiece(prefab, true, val); PieceManager.Instance.AddPiece(val3); AddedPrefabs.Add(((Object)prefab).name); MVBLog.info("Ending FindAndRegisterPrefabs(" + ((Object)prefab).name + ")"); } private static void PatchPrefabIfNeeded(GameObject prefab) { //IL_081c: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0852: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_0872: Unknown result type (might be due to invalid IL or missing references) //IL_0888: Unknown result type (might be due to invalid IL or missing references) //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_08a3: Unknown result type (might be due to invalid IL or missing references) //IL_08a8: Unknown result type (might be due to invalid IL or missing references) //IL_08be: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08de: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_1bf3: Unknown result type (might be due to invalid IL or missing references) //IL_1bf8: Unknown result type (might be due to invalid IL or missing references) //IL_1c0e: Unknown result type (might be due to invalid IL or missing references) //IL_1c13: Unknown result type (might be due to invalid IL or missing references) //IL_1c29: Unknown result type (might be due to invalid IL or missing references) //IL_1c2e: Unknown result type (might be due to invalid IL or missing references) //IL_1c44: Unknown result type (might be due to invalid IL or missing references) //IL_1c49: Unknown result type (might be due to invalid IL or missing references) //IL_108c: Unknown result type (might be due to invalid IL or missing references) //IL_10c0: Unknown result type (might be due to invalid IL or missing references) //IL_10f4: Unknown result type (might be due to invalid IL or missing references) //IL_1128: Unknown result type (might be due to invalid IL or missing references) //IL_1c71: Unknown result type (might be due to invalid IL or missing references) //IL_1c76: Unknown result type (might be due to invalid IL or missing references) //IL_1c8c: Unknown result type (might be due to invalid IL or missing references) //IL_1c91: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7: Unknown result type (might be due to invalid IL or missing references) //IL_1cac: Unknown result type (might be due to invalid IL or missing references) //IL_1cc2: Unknown result type (might be due to invalid IL or missing references) //IL_1cc7: Unknown result type (might be due to invalid IL or missing references) //IL_1864: Unknown result type (might be due to invalid IL or missing references) //IL_1869: Unknown result type (might be due to invalid IL or missing references) //IL_187f: Unknown result type (might be due to invalid IL or missing references) //IL_1884: Unknown result type (might be due to invalid IL or missing references) //IL_155e: Unknown result type (might be due to invalid IL or missing references) //IL_1563: Unknown result type (might be due to invalid IL or missing references) //IL_1579: Unknown result type (might be due to invalid IL or missing references) //IL_157e: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: Unknown result type (might be due to invalid IL or missing references) //IL_0aba: Unknown result type (might be due to invalid IL or missing references) //IL_0abf: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0af0: Unknown result type (might be due to invalid IL or missing references) //IL_0af5: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b10: Unknown result type (might be due to invalid IL or missing references) //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b2b: Unknown result type (might be due to invalid IL or missing references) //IL_1906: Unknown result type (might be due to invalid IL or missing references) //IL_190b: Unknown result type (might be due to invalid IL or missing references) //IL_1921: Unknown result type (might be due to invalid IL or missing references) //IL_1926: Unknown result type (might be due to invalid IL or missing references) //IL_0fb7: Unknown result type (might be due to invalid IL or missing references) //IL_0feb: Unknown result type (might be due to invalid IL or missing references) //IL_101f: Unknown result type (might be due to invalid IL or missing references) //IL_1053: Unknown result type (might be due to invalid IL or missing references) //IL_181c: Unknown result type (might be due to invalid IL or missing references) //IL_1821: Unknown result type (might be due to invalid IL or missing references) //IL_1837: Unknown result type (might be due to invalid IL or missing references) //IL_183c: Unknown result type (might be due to invalid IL or missing references) //IL_14ce: Unknown result type (might be due to invalid IL or missing references) //IL_14d3: Unknown result type (might be due to invalid IL or missing references) //IL_14e9: Unknown result type (might be due to invalid IL or missing references) //IL_14ee: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1a7e: Unknown result type (might be due to invalid IL or missing references) //IL_1a94: Unknown result type (might be due to invalid IL or missing references) //IL_1a99: Unknown result type (might be due to invalid IL or missing references) //IL_1aaf: Unknown result type (might be due to invalid IL or missing references) //IL_1ab4: Unknown result type (might be due to invalid IL or missing references) //IL_1aca: Unknown result type (might be due to invalid IL or missing references) //IL_1acf: Unknown result type (might be due to invalid IL or missing references) //IL_1ae5: Unknown result type (might be due to invalid IL or missing references) //IL_1aea: Unknown result type (might be due to invalid IL or missing references) //IL_1b00: Unknown result type (might be due to invalid IL or missing references) //IL_1b05: Unknown result type (might be due to invalid IL or missing references) //IL_195a: Unknown result type (might be due to invalid IL or missing references) //IL_197d: Unknown result type (might be due to invalid IL or missing references) //IL_1982: Unknown result type (might be due to invalid IL or missing references) //IL_1998: Unknown result type (might be due to invalid IL or missing references) //IL_199d: Unknown result type (might be due to invalid IL or missing references) //IL_19b3: Unknown result type (might be due to invalid IL or missing references) //IL_19b8: Unknown result type (might be due to invalid IL or missing references) //IL_19ce: Unknown result type (might be due to invalid IL or missing references) //IL_19d3: Unknown result type (might be due to invalid IL or missing references) //IL_0d31: Unknown result type (might be due to invalid IL or missing references) //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d4c: Unknown result type (might be due to invalid IL or missing references) //IL_0d51: Unknown result type (might be due to invalid IL or missing references) //IL_0d67: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d82: Unknown result type (might be due to invalid IL or missing references) //IL_0d87: Unknown result type (might be due to invalid IL or missing references) //IL_0d9d: Unknown result type (might be due to invalid IL or missing references) //IL_0da2: Unknown result type (might be due to invalid IL or missing references) //IL_0db8: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_18ac: Unknown result type (might be due to invalid IL or missing references) //IL_18b1: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f4a: Unknown result type (might be due to invalid IL or missing references) //IL_0f7e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea9: Unknown result type (might be due to invalid IL or missing references) //IL_1486: Unknown result type (might be due to invalid IL or missing references) //IL_148b: Unknown result type (might be due to invalid IL or missing references) //IL_14a1: Unknown result type (might be due to invalid IL or missing references) //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_15a6: Unknown result type (might be due to invalid IL or missing references) //IL_15ab: Unknown result type (might be due to invalid IL or missing references) //IL_15c1: Unknown result type (might be due to invalid IL or missing references) //IL_15c6: Unknown result type (might be due to invalid IL or missing references) //IL_15dc: Unknown result type (might be due to invalid IL or missing references) //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_15f7: Unknown result type (might be due to invalid IL or missing references) //IL_15fc: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_1531: Unknown result type (might be due to invalid IL or missing references) //IL_1536: Unknown result type (might be due to invalid IL or missing references) //IL_1bab: Unknown result type (might be due to invalid IL or missing references) //IL_1bb0: Unknown result type (might be due to invalid IL or missing references) //IL_1bc6: Unknown result type (might be due to invalid IL or missing references) //IL_1bcb: Unknown result type (might be due to invalid IL or missing references) //IL_16cf: Unknown result type (might be due to invalid IL or missing references) //IL_16d4: Unknown result type (might be due to invalid IL or missing references) //IL_16ea: Unknown result type (might be due to invalid IL or missing references) //IL_16ef: Unknown result type (might be due to invalid IL or missing references) //IL_1705: Unknown result type (might be due to invalid IL or missing references) //IL_170a: Unknown result type (might be due to invalid IL or missing references) //IL_1720: Unknown result type (might be due to invalid IL or missing references) //IL_1725: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_0963: Unknown result type (might be due to invalid IL or missing references) //IL_0979: Unknown result type (might be due to invalid IL or missing references) //IL_097e: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Unknown result type (might be due to invalid IL or missing references) //IL_0999: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09b4: Unknown result type (might be due to invalid IL or missing references) //IL_09ca: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09e5: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_0a00: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0a1b: Unknown result type (might be due to invalid IL or missing references) //IL_0a20: Unknown result type (might be due to invalid IL or missing references) //IL_0a36: Unknown result type (might be due to invalid IL or missing references) //IL_0a3b: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a57: Unknown result type (might be due to invalid IL or missing references) //IL_1624: Unknown result type (might be due to invalid IL or missing references) //IL_1629: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_05e7: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Unknown result type (might be due to invalid IL or missing references) //IL_0653: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0684: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_0713: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_0783: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07b6: Unknown result type (might be due to invalid IL or missing references) //IL_07bb: Unknown result type (might be due to invalid IL or missing references) //IL_07d2: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_130e: Unknown result type (might be due to invalid IL or missing references) //IL_1342: Unknown result type (might be due to invalid IL or missing references) //IL_1376: Unknown result type (might be due to invalid IL or missing references) //IL_13aa: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c0c: Unknown result type (might be due to invalid IL or missing references) //IL_0c22: Unknown result type (might be due to invalid IL or missing references) //IL_0c27: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c42: Unknown result type (might be due to invalid IL or missing references) //IL_0c58: Unknown result type (might be due to invalid IL or missing references) //IL_0c5d: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Unknown result type (might be due to invalid IL or missing references) //IL_0c78: Unknown result type (might be due to invalid IL or missing references) //IL_0c8e: Unknown result type (might be due to invalid IL or missing references) //IL_0c93: Unknown result type (might be due to invalid IL or missing references) //IL_19fb: Unknown result type (might be due to invalid IL or missing references) //IL_1a00: Unknown result type (might be due to invalid IL or missing references) //IL_1a16: Unknown result type (might be due to invalid IL or missing references) //IL_1a1b: Unknown result type (might be due to invalid IL or missing references) //IL_1a31: Unknown result type (might be due to invalid IL or missing references) //IL_1a36: Unknown result type (might be due to invalid IL or missing references) //IL_1a4c: Unknown result type (might be due to invalid IL or missing references) //IL_1a51: Unknown result type (might be due to invalid IL or missing references) //IL_1b2d: Unknown result type (might be due to invalid IL or missing references) //IL_1b32: Unknown result type (might be due to invalid IL or missing references) //IL_1b48: Unknown result type (might be due to invalid IL or missing references) //IL_1b4d: Unknown result type (might be due to invalid IL or missing references) //IL_1b63: Unknown result type (might be due to invalid IL or missing references) //IL_1b68: Unknown result type (might be due to invalid IL or missing references) //IL_1b7e: Unknown result type (might be due to invalid IL or missing references) //IL_1b83: Unknown result type (might be due to invalid IL or missing references) //IL_0de5: Unknown result type (might be due to invalid IL or missing references) //IL_0dea: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e1b: Unknown result type (might be due to invalid IL or missing references) //IL_0e20: Unknown result type (might be due to invalid IL or missing references) //IL_0e36: Unknown result type (might be due to invalid IL or missing references) //IL_0e3b: Unknown result type (might be due to invalid IL or missing references) //IL_0e51: Unknown result type (might be due to invalid IL or missing references) //IL_0e56: Unknown result type (might be due to invalid IL or missing references) //IL_0e6c: Unknown result type (might be due to invalid IL or missing references) //IL_0e71: Unknown result type (might be due to invalid IL or missing references) //IL_1651: Unknown result type (might be due to invalid IL or missing references) //IL_1656: Unknown result type (might be due to invalid IL or missing references) //IL_166c: Unknown result type (might be due to invalid IL or missing references) //IL_1671: Unknown result type (might be due to invalid IL or missing references) //IL_1687: Unknown result type (might be due to invalid IL or missing references) //IL_168c: Unknown result type (might be due to invalid IL or missing references) //IL_16a2: Unknown result type (might be due to invalid IL or missing references) //IL_16a7: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_1752: Unknown result type (might be due to invalid IL or missing references) //IL_1768: Unknown result type (might be due to invalid IL or missing references) //IL_176d: Unknown result type (might be due to invalid IL or missing references) //IL_1783: Unknown result type (might be due to invalid IL or missing references) //IL_1788: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17a3: Unknown result type (might be due to invalid IL or missing references) //IL_17b9: Unknown result type (might be due to invalid IL or missing references) //IL_17be: Unknown result type (might be due to invalid IL or missing references) //IL_17d4: Unknown result type (might be due to invalid IL or missing references) //IL_17d9: Unknown result type (might be due to invalid IL or missing references) //IL_17ef: Unknown result type (might be due to invalid IL or missing references) //IL_17f4: Unknown result type (might be due to invalid IL or missing references) //IL_18d9: Unknown result type (might be due to invalid IL or missing references) //IL_18de: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1443: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_145e: Unknown result type (might be due to invalid IL or missing references) //IL_1cef: Unknown result type (might be due to invalid IL or missing references) //IL_1cf4: Unknown result type (might be due to invalid IL or missing references) //IL_1d0a: Unknown result type (might be due to invalid IL or missing references) //IL_1d0f: Unknown result type (might be due to invalid IL or missing references) //IL_1d25: Unknown result type (might be due to invalid IL or missing references) //IL_1d2a: Unknown result type (might be due to invalid IL or missing references) //IL_1d40: Unknown result type (might be due to invalid IL or missing references) //IL_1d45: Unknown result type (might be due to invalid IL or missing references) //IL_1d5b: Unknown result type (might be due to invalid IL or missing references) //IL_1d60: Unknown result type (might be due to invalid IL or missing references) //IL_1d76: Unknown result type (might be due to invalid IL or missing references) //IL_1d7b: Unknown result type (might be due to invalid IL or missing references) //IL_1d91: Unknown result type (might be due to invalid IL or missing references) //IL_1d96: Unknown result type (might be due to invalid IL or missing references) //IL_1dac: Unknown result type (might be due to invalid IL or missing references) //IL_1db1: Unknown result type (might be due to invalid IL or missing references) //IL_11cd: Unknown result type (might be due to invalid IL or missing references) //IL_1201: Unknown result type (might be due to invalid IL or missing references) //IL_1235: Unknown result type (might be due to invalid IL or missing references) //IL_1269: Unknown result type (might be due to invalid IL or missing references) //IL_0b53: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Unknown result type (might be due to invalid IL or missing references) //IL_0b6e: Unknown result type (might be due to invalid IL or missing references) //IL_0b73: Unknown result type (might be due to invalid IL or missing references) //IL_0b89: Unknown result type (might be due to invalid IL or missing references) //IL_0b8e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bbf: Unknown result type (might be due to invalid IL or missing references) //IL_0bc4: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0bdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cc5: Unknown result type (might be due to invalid IL or missing references) switch (((Object)prefab).name) { case "blackmarble_column_3": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[20] { new Vector3(-1f, 4f, -1f), new Vector3(1f, 4f, 1f), new Vector3(-1f, 4f, 1f), new Vector3(1f, 4f, -1f), new Vector3(-1f, 2f, -1f), new Vector3(1f, 2f, 1f), new Vector3(-1f, 2f, 1f), new Vector3(1f, 2f, -1f), new Vector3(-1f, 0f, -1f), new Vector3(1f, 0f, 1f), new Vector3(-1f, 0f, 1f), new Vector3(1f, 0f, -1f), new Vector3(-1f, -2f, -1f), new Vector3(1f, -2f, 1f), new Vector3(-1f, -2f, 1f), new Vector3(1f, -2f, -1f), new Vector3(-1f, -4f, -1f), new Vector3(1f, -4f, 1f), new Vector3(-1f, -4f, 1f), new Vector3(1f, -4f, -1f) }); break; case "blackmarble_creep_4x1x1": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[10] { new Vector3(-0.5f, 2f, -0.5f), new Vector3(0.5f, 2f, 0.5f), new Vector3(-0.5f, 2f, 0.5f), new Vector3(0.5f, 2f, -0.5f), new Vector3(-0.5f, -2f, -0.5f), new Vector3(0.5f, -2f, 0.5f), new Vector3(-0.5f, -2f, 0.5f), new Vector3(0.5f, -2f, -0.5f), new Vector3(0f, -2f, 0f), new Vector3(0f, 2f, 0f) }); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("new")).gameObject.GetComponent<RandomPieceRotation>()); break; case "blackmarble_creep_4x2x1": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[10] { new Vector3(1f, 2f, -0.5f), new Vector3(1f, 2f, 0.5f), new Vector3(-1f, 2f, -0.5f), new Vector3(-1f, 2f, 0.5f), new Vector3(1f, -2f, -0.5f), new Vector3(1f, -2f, 0.5f), new Vector3(-1f, -2f, -0.5f), new Vector3(-1f, -2f, 0.5f), new Vector3(0f, -2f, 0f), new Vector3(0f, 2f, 0f) }); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("new")).gameObject.GetComponent<RandomPieceRotation>()); break; case "blackmarble_creep_slope_inverted_1x1x2": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(-0.5f, 1f, -0.5f), new Vector3(0.5f, 1f, 0.5f), new Vector3(-0.5f, 1f, 0.5f), new Vector3(0.5f, 1f, -0.5f), new Vector3(0.5f, -1f, -0.5f), new Vector3(-0.5f, -1f, -0.5f) }); break; case "blackmarble_creep_slope_inverted_2x2x1": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(-1f, 0.5f, -1f), new Vector3(1f, 0.5f, 1f), new Vector3(-1f, 0.5f, 1f), new Vector3(1f, 0.5f, -1f), new Vector3(-1f, -0.5f, -1f), new Vector3(1f, -0.5f, -1f) }); break; case "blackmarble_creep_stair": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(-1f, 1f, -1f), new Vector3(1f, 1f, -1f), new Vector3(-1f, 0f, -1f), new Vector3(1f, 0f, -1f), new Vector3(-1f, 0f, 1f), new Vector3(1f, 0f, 1f) }); break; case "blackmarble_floor_large": { List<Vector3> list = new List<Vector3>(); for (int i = -1; i <= 1; i += 2) { for (int j = -4; j <= 4; j += 2) { for (int k = -4; k <= 4; k += 2) { list.Add(new Vector3((float)j, (float)i, (float)k)); } } } generateSnapPoints(prefab, list); break; } case "blackmarble_head_big01": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(-1f, 1f, -1f), new Vector3(1f, 1f, 1f), new Vector3(-1f, 1f, 1f), new Vector3(1f, 1f, -1f), new Vector3(1f, -1f, -1f), new Vector3(-1f, -1f, -1f) }); break; case "blackmarble_head_big02": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(-1f, 1f, -1f), new Vector3(1f, 1f, 1f), new Vector3(-1f, 1f, 1f), new Vector3(1f, 1f, -1f), new Vector3(1f, -1f, -1f), new Vector3(-1f, -1f, -1f) }); break; case "blackmarble_out_2": Object.DestroyImmediate((Object)(object)prefab.GetComponent<MeshCollider>()); prefab.AddComponent<BoxCollider>(); prefab.GetComponent<BoxCollider>().size = new Vector3(2f, 2f, 2f); break; case "blackmarble_tile_floor_1x1": ((Component)prefab.transform.Find("_snappoint")).gameObject.transform.localPosition = new Vector3(0.5f, 0.1f, 0.5f); ((Component)prefab.transform.Find("_snappoint (1)")).gameObject.transform.localPosition = new Vector3(0.5f, 0.1f, -0.5f); ((Component)prefab.transform.Find("_snappoint (2)")).gameObject.transform.localPosition = new Vector3(-0.5f, 0.1f, 0.5f); ((Component)prefab.transform.Find("_snappoint (3)")).gameObject.transform.localPosition = new Vector3(-0.5f, 0.1f, -0.5f); break; case "blackmarble_tile_floor_2x2": ((Component)prefab.transform.Find("_snappoint")).gameObject.transform.localPosition = new Vector3(1f, 0.1f, 1f); ((Component)prefab.transform.Find("_snappoint (1)")).gameObject.transform.localPosition = new Vector3(1f, 0.1f, -1f); ((Component)prefab.transform.Find("_snappoint (2)")).gameObject.transform.localPosition = new Vector3(-1f, 0.1f, 1f); ((Component)prefab.transform.Find("_snappoint (3)")).gameObject.transform.localPosition = new Vector3(-1f, 0.1f, -1f); break; case "blackmarble_tile_wall_1x1": ((Component)prefab.transform.Find("_snappoint")).gameObject.transform.localPosition = new Vector3(0.5f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (1)")).gameObject.transform.localPosition = new Vector3(0.5f, 1f, 0.1f); ((Component)prefab.transform.Find("_snappoint (2)")).gameObject.transform.localPosition = new Vector3(-0.5f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (3)")).gameObject.transform.localPosition = new Vector3(-0.5f, 1f, 0.1f); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (4)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (5)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (6)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (7)")).gameObject); break; case "blackmarble_tile_wall_2x2": ((Component)prefab.transform.Find("_snappoint")).gameObject.transform.localPosition = new Vector3(1f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (1)")).gameObject.transform.localPosition = new Vector3(1f, 2f, 0.1f); ((Component)prefab.transform.Find("_snappoint (2)")).gameObject.transform.localPosition = new Vector3(-1f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (3)")).gameObject.transform.localPosition = new Vector3(-1f, 2f, 0.1f); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (4)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (5)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (6)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (7)")).gameObject); break; case "blackmarble_tile_wall_2x4": ((Component)prefab.transform.Find("_snappoint")).gameObject.transform.localPosition = new Vector3(1f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (1)")).gameObject.transform.localPosition = new Vector3(1f, 4f, 0.1f); ((Component)prefab.transform.Find("_snappoint (2)")).gameObject.transform.localPosition = new Vector3(-1f, 0f, 0.1f); ((Component)prefab.transform.Find("_snappoint (3)")).gameObject.transform.localPosition = new Vector3(-1f, 4f, 0.1f); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (4)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (5)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (6)")).gameObject); Object.DestroyImmediate((Object)(object)((Component)prefab.transform.Find("_snappoint (7)")).gameObject); break; case "dungeon_queen_door": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(2.5f, 0f, 0f), new Vector3(-2.5f, 0f, 0f) }); break; case "dungeon_sunkencrypt_irongate": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(1f, -0.4f, 0f), new Vector3(-1f, -0.4f, 0f) }); break; case "sunken_crypt_gate": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(1f, 0f, 0f), new Vector3(-1f, 0f, 0f) }); break; case "dvergrprops_wood_beam": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(3f, 0f, 0f), new Vector3(-3f, 0f, 0f) }); break; case "dvergrprops_wood_pole": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(0f, 2f, 0f), new Vector3(0f, -2f, 0f) }); break; case "dvergrprops_wood_wall": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(2.2f, 2f, 0f), new Vector3(-2.2f, 2f, 0f), new Vector3(2.2f, -2f, 0f), new Vector3(-2.2f, -2f, 0f) }); break; case "dvergrtown_arch": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[1] { new Vector3(1f, 0.5f, 0f) }); break; case "dvergrtown_secretdoor": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(2f, 0f, 0f), new Vector3(-2f, 0f, 0f), new Vector3(2f, 4f, 0f), new Vector3(-2f, 4f, 0f) }); break; case "dvergrtown_slidingdoor": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(2f, 0f, 0f), new Vector3(-2f, 0f, 0f), new Vector3(2f, 4f, 0f), new Vector3(-2f, 4f, 0f) }); break; case "dvergrtown_stair_corner_wood_left": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[7] { new Vector3(0.25f, 0f, -0.25f), new Vector3(0.25f, 0f, 0.25f), new Vector3(0.25f, 1.1f, -0.25f), new Vector3(0.25f, 1.1f, 0.25f), new Vector3(0.25f, 0f, 2f), new Vector3(-0.25f, 1.1f, -0.25f), new Vector3(-2f, 1.1f, -0.25f) }); break; case "dvergrtown_wood_beam": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(3f, 0f, 0f), new Vector3(-3f, 0f, 0f) }); break; case "dvergrtown_wood_pole": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(0f, -2f, 0f), new Vector3(0f, 2f, 0f) }); break; case "dvergrtown_wood_stake": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[1] { new Vector3(0f, 0f, 0f) }); break; case "dvergrtown_wood_crane": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[1] { new Vector3(0f, -3f, 0f) }); break; case "dvergrtown_wood_support": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(-2f, 0f, 0f), new Vector3(2f, 0f, 0f) }); break; case "dvergrtown_wood_wall01": ((Component)prefab.transform.Find("wallcollider")).transform.localPosition = new Vector3(0f, 0f, 0f); generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(-3f, -2.7f, 0f), new Vector3(3f, -2.7f, 0f), new Vector3(-3f, 2.7f, 0f), new Vector3(3f, 2.7f, 0f) }); break; case "dvergrtown_wood_wall02": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(-3f, -0.5f, 0f), new Vector3(3f, -0.5f, 0f), new Vector3(-3f, 4.5f, 0f), new Vector3(3f, 4.5f, 0f) }); break; case "dvergrtown_wood_wall03": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[6] { new Vector3(1.1f, 0f, 0f), new Vector3(-1.1f, 0f, 0f), new Vector3(2f, 2f, 0f), new Vector3(-2f, 2f, 0f), new Vector3(1.1f, 4f, 0f), new Vector3(-1.1f, 4f, 0f) }); break; case "goblin_roof_45d": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(1f, 0f, 1f), new Vector3(-1f, 0f, 1f), new Vector3(1f, 2f, -1f), new Vector3(-1f, 2f, -1f) }); break; case "goblin_roof_45d_corner": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[2] { new Vector3(-1f, 0f, -1f), new Vector3(1f, 0f, 1f) }); break; case "goblin_woodwall_1m": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(-0.5f, 0f, 0f), new Vector3(0.5f, 0f, 0f), new Vector3(-0.5f, 2f, 0f), new Vector3(0.5f, 2f, 0f) }); break; case "goblin_woodwall_2m": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[4] { new Vector3(-1f, 0f, 0f), new Vector3(1f, 0f, 0f), new Vector3(-1f, 2f, 0f), new Vector3(1f, 2f, 0f) }); break; case "Ice_floor": generateSnapPoints(prefab, (Vector3[])(object)new Vector3[8] { new Vector3(2f, 1f, 2f), new Vector3(-2f, 1f, -2f), new Vector3(2f, 1f, -2f), new Vector3(-2f, 1f, 2f), new Vector3(2f, -1f, 2f), new Vector3(-2f, -1f, -2f), new Vector3(2f, -1f, -2f), new Vector3(-2f, -1f, 2f) }); break; } } private static void generateSnapPoints(GameObject prefab, Vector3[] positions) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0036: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < positions.Length; i++) { GameObject val = new GameObject("_snappointt" + i); val.transform.parent = prefab.transform; val.transform.localPosition = positions[i]; val.tag = "snappoint"; } } private static void generateSnapPoints(GameObject prefab, List<Vector3> positions) { generateSnapPoints(prefab, positions.ToArray()); } private static string GetPrefabFriendlyName(GameObject prefab) { HoverText component = prefab.GetComponent<HoverText>(); if (Object.op_Implicit((Object)(object)component)) { return component.m_text; } ItemDrop component2 = prefab.GetComponent<ItemDrop>(); if (Object.op_Implicit((Object)(object)component2)) { return component2.m_itemData.m_shared.m_name; } Character component3 = prefab.GetComponent<Character>(); if (Object.op_Implicit((Object)(object)component3)) { return component3.m_name; } RuneStone component4 = prefab.GetComponent<RuneStone>(); if (Object.op_Implicit((Object)(object)component4)) { return component4.m_name; } ItemStand component5 = prefab.GetComponent<ItemStand>(); if (Object.op_Implicit((Object)(object)component5)) { return component5.m_name; } MineRock component6 = prefab.GetComponent<MineRock>(); if (Object.op_Implicit((Object)(object)component6)) { return component6.m_name; } Pickable component7 = prefab.GetComponent<Pickable>(); if (Object.op_Implicit((Object)(object)component7)) { return GetPrefabFriendlyName(component7.m_itemPrefab); } CreatureSpawner component8 = prefab.GetComponent<CreatureSpawner>(); if (Object.op_Implicit((Object)(object)component8)) { return GetPrefabFriendlyName(component8.m_creaturePrefab); } SpawnArea component9 = prefab.GetComponent<SpawnArea>(); if (Object.op_Implicit((Object)(object)component9) && component9.m_prefabs.Count > 0) { return GetPrefabFriendlyName(component9.m_prefabs[0].m_prefab); } Piece component10 = prefab.GetComponent<Piece>(); if (Object.op_Implicit((Object)(object)component10) && !string.IsNullOrEmpty(component10.m_name)) { return component10.m_name; } return ((Object)prefab).name; } private static Sprite CreatePrefabIcon(GameObject prefab) { Sprite val = generateObjectIcon(prefab); if ((Object)(object)val == (Object)null) { RandomItem[] array = prefab.GetComponent<PickableItem>()?.m_randomItemPrefabs; if (array != null && array.Length != 0) { ItemDrop itemPrefab = array[0].m_itemPrefab; GameObject val2 = ((itemPrefab != null) ? ((Component)itemPrefab).gameObject : null); if ((Object)(object)val2 != (Object)null) { val = generateObjectIcon(val2); } } } return val; } private static Sprite generateObjectIcon(GameObject obj) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) RenderRequest val = new RenderRequest(obj); val.Rotation = RenderManager.IsometricRotation; val.UseCache = true; return RenderManager.Instance.Render(val); } public static void PrepareGhostPrefab(GameObject ghost) { //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) Object.Destroy((Object)(object)ghost.GetComponent<CharacterDrop>()); Component[] componentsInChildren = ghost.GetComponentsInChildren<Component>(true); Component[] array = componentsInChildren; foreach (Component val in array) { if (!(val is Piece) && !(val is Collider) && !(val is Renderer) && !(val is Transform) && !(val is ZNetView) && !(val is Rigidbody) && !(val is MeshFilter) && !(val is LODGroup) && !(val is PickableItem) && !(val is UIBehaviour) && !(val is WearNTear)) { Object.DestroyImmediate((Object)(object)val); } } Bounds val2 = default(Bounds); Renderer[] componentsInChildren2 = ghost.GetComponentsInChildren<Renderer>(); foreach (Renderer val3 in componentsInChildren2) { ((Bounds)(ref val2)).Encapsulate(val3.bounds); } BoxCollider val4 = ghost.AddComponent<BoxCollider>(); val4.center = ((Bounds)(ref val2)).center; val4.size = ((Bounds)(ref val2)).size; } }