Decompiled source of HirnuGeos v0.0.1

Plugins/HirnuGeos.dll

Decompiled 2 weeks ago
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using AIGraph;
using AssetShards;
using BepInEx;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using CullingSystem;
using Expedition;
using FluffyUnderware.DevTools.Extensions;
using GTFO.API;
using GameData;
using HarmonyLib;
using Il2CppInterop.Runtime.InteropTypes;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using LevelGeneration;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("HirnuGeos")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("HirnuGeos")]
[assembly: AssemblyTitle("HirnuGeos")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace HirnuGeos
{
	public class Hirnu_deadend : MonoBehaviour
	{
		public static void OnFactoryBuildDone()
		{
			if ((Object)(object)Plugin.hirnudeadendgo != (Object)null)
			{
				Plugin.hirnudeadendgo.SetActive(false);
			}
		}

		public static void OnFactoryBuildStart(SubComplex subcomplex)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: 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_01ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Expected O, but got Unknown
			//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_033c: Unknown result type (might be due to invalid IL or missing references)
			//IL_035b: Unknown result type (might be due to invalid IL or missing references)
			//IL_037a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Expected O, but got Unknown
			//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f6: Expected O, but got Unknown
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_043f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0470: Unknown result type (might be due to invalid IL or missing references)
			//IL_0493: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Expected O, but got Unknown
			//IL_04e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0501: Unknown result type (might be due to invalid IL or missing references)
			//IL_0532: Unknown result type (might be due to invalid IL or missing references)
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_055f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0566: Expected O, but got Unknown
			//IL_0566: Unknown result type (might be due to invalid IL or missing references)
			//IL_056d: Expected O, but got Unknown
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0574: Expected O, but got Unknown
			//IL_05a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0617: Unknown result type (might be due to invalid IL or missing references)
			//IL_0636: Unknown result type (might be due to invalid IL or missing references)
			//IL_0651: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0714: Unknown result type (might be due to invalid IL or missing references)
			//IL_0733: Unknown result type (might be due to invalid IL or missing references)
			//IL_074e: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0811: Unknown result type (might be due to invalid IL or missing references)
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			//IL_084b: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0883: Expected O, but got Unknown
			//IL_089a: Unknown result type (might be due to invalid IL or missing references)
			//IL_089f: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_090d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0917: Unknown result type (might be due to invalid IL or missing references)
			//IL_092c: Unknown result type (might be due to invalid IL or missing references)
			//IL_094e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0953: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_097a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: 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_09f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0b: 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_0a2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3f: Unknown result type (might be due to invalid IL or missing references)
			Plugin.hirnudeadendgo = null;
			Plugin.hirnudeadendgo = new GameObject();
			Plugin.hirnudeadendgo.SetActive(true);
			Plugin.L.LogInfo((object)"building dead-end tile");
			Plugin.hirnudeadendgo.SetActive(true);
			((Object)Plugin.hirnudeadendgo).hideFlags = (HideFlags)61;
			Plugin.hirnudeadendgo.layer = LayerManager.LAYER_DEFAULT;
			((Object)Plugin.hirnudeadendgo).name = "fd_tile_deadend";
			LG_Geomorph val = Plugin.hirnudeadendgo.AddComponent<LG_Geomorph>();
			val.m_drawWalls = true;
			Plugin.hirnudeadendgo.AddComponent<AIG_VoxelNodeVolume>();
			GameObject val2 = new GameObject("Area A");
			val2.transform.parent = Plugin.hirnudeadendgo.transform;
			((Object)val2).name = "fd_tile_deadend_a";
			GameObject val3 = new GameObject("AreaAIGraphSource");
			val3.transform.parent = val2.transform;
			Transform transform = val3.transform;
			transform.localPosition += new Vector3(0f, 2f, -23f);
			LG_AreaAIGraphSource val4 = val3.AddComponent<LG_AreaAIGraphSource>();
			val4.m_position = new Vector3(0f, 2f, 0f);
			LG_Area val5 = val2.AddComponent<LG_Area>();
			val5.m_size = (LG_AreaSize)2;
			val5.m_geomorph = val;
			val.m_areas = Il2CppReferenceArray<LG_Area>.op_Implicit((LG_Area[])(object)new LG_Area[1] { val5 });
			GameObject val6 = new GameObject("Gate 1");
			val6.transform.parent = val2.transform;
			val6.transform.localPosition = new Vector3(0f, 0f, -32f);
			val6.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
			LG_Plug obj = val6.AddComponent<LG_Plug>();
			((LG_ZoneExpander)obj).m_originalForward = new Vector3(0f, 0f, -1f);
			((LG_ZoneExpander)obj).m_hasOriginalForward = true;
			((LG_ZoneExpander)obj).m_subComplex = subcomplex;
			val5.m_groupSource = val4;
			val5.m_geomorph = val;
			GameObject val7 = new GameObject("EnvProps");
			val7.transform.parent = val2.transform;
			val7.transform.localPosition = new Vector3(0f, 0f, 0f);
			for (int i = -30; i < 32; i += 4)
			{
				for (int j = -30; j < 32; j += 4)
				{
					if ((i >= -24 || j <= -8 || j >= 8) && (i <= 24 || j <= -8 || j >= 8) && (j >= -24 || i <= -8 || i >= 8) && (j <= 24 || i <= -8 || i >= 8))
					{
						GameObject obj2 = GameObject.CreatePrimitive((PrimitiveType)5);
						((Object)obj2).name = "hirnu_floor";
						obj2.transform.parent = val7.transform;
						obj2.transform.localPosition = new Vector3((float)i, -0.05f, (float)j);
						obj2.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
						obj2.transform.localScale = new Vector3(4f, 4f, 4f);
					}
				}
			}
			GameObject obj3 = GameObject.CreatePrimitive((PrimitiveType)5);
			((Object)obj3.transform).name = "hirnu_ceiling";
			obj3.transform.parent = val7.transform;
			obj3.transform.localPosition = new Vector3(0f, 8f, 0f);
			obj3.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
			obj3.transform.localScale = new Vector3(64f, 64f, 64f);
			((Renderer)obj3.GetComponent<MeshRenderer>()).material.SetTexture("_MainTex", (Texture)(object)Texture2D.blackTexture);
			GameObject val8 = new GameObject("Lights");
			val8.transform.parent = val2.transform;
			val8.transform.localPosition = new Vector3(0f, 0f, 0f);
			GameObject obj4 = Object.Instantiate<GameObject>(((Component)Plugin.hirnulamp).gameObject);
			GameObject val9 = new GameObject("Light 1 west");
			val9.transform.parent = val8.transform;
			val9.transform.localPosition = new Vector3(-4f, 7f, -16.1f);
			val9.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			obj4.transform.parent = val9.transform;
			obj4.transform.localPosition = new Vector3(0f, 0f, 0f);
			obj4.transform.localRotation = new Quaternion(0f, 0f, 0f, 0f);
			GameObject obj5 = Object.Instantiate<GameObject>(((Component)Plugin.hirnulamp).gameObject);
			GameObject val10 = new GameObject("Light 1 east");
			val10.transform.parent = val8.transform;
			val10.transform.localPosition = new Vector3(4f, 7f, -16.1f);
			val10.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			obj5.transform.parent = val10.transform;
			obj5.transform.localPosition = new Vector3(0f, 0f, 0f);
			obj5.transform.localRotation = new Quaternion(0f, 0f, 0f, 0f);
			GameObject val11 = new GameObject();
			GameObject val12 = new GameObject();
			GameObject val13 = new GameObject();
			((Object)val11).name = "fd_wall_w";
			val11.transform.SetParent(val7.transform);
			val11.transform.localPosition = new Vector3(-8f, 4f, -24f);
			val11.transform.localEulerAngles = new Vector3(0f, 270f, 0f);
			for (float num = -6f; num < 7f; num += 4f)
			{
				GameObject obj6 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj6).name = "hirnu_wall";
				obj6.transform.parent = val11.transform;
				obj6.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj6.transform.localScale = new Vector3(4f, 8.2f, 4f);
				obj6.transform.localPosition = new Vector3(num, 0f, 0f);
			}
			((Object)val12).name = "fd_wall_e";
			val12.transform.SetParent(val7.transform);
			val12.transform.localPosition = new Vector3(8f, 4f, -24f);
			val12.transform.localEulerAngles = new Vector3(0f, 90f, 0f);
			for (float num2 = -6f; num2 < 7f; num2 += 4f)
			{
				GameObject obj7 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj7).name = "hirnu_wall";
				obj7.transform.parent = val12.transform;
				obj7.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj7.transform.localScale = new Vector3(4f, 8.2f, 4f);
				obj7.transform.localPosition = new Vector3(num2, 0f, 0f);
			}
			((Object)val13).name = "fd_wall_n";
			val13.transform.SetParent(val7.transform);
			val13.transform.localPosition = new Vector3(0f, 4f, -16f);
			val13.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			for (float num3 = -6f; num3 < 7f; num3 += 4f)
			{
				GameObject obj8 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj8).name = "hirnu_wall";
				obj8.transform.parent = val13.transform;
				obj8.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj8.transform.localScale = new Vector3(4f, 8.2f, 4f);
				obj8.transform.localPosition = new Vector3(num3, 0f, 0f);
			}
			MarkerGroupDataBlock block = GameDataBlockBase<MarkerGroupDataBlock>.GetBlock("Tech_DataCenter");
			GameObject val14 = new GameObject("Markers");
			val14.transform.parent = val2.transform;
			GameObject val15 = new GameObject("Fallback 1");
			val15.transform.parent = val14.transform;
			val15.transform.localPosition = new Vector3(0f, 0f, -22f);
			val15.AddComponent<TechDataCenterMarkerProducer>().m_markerDataBlockID = 63u;
			GameObject val16 = new GameObject("Sign 1");
			val16.transform.parent = val14.transform;
			val16.transform.localPosition = new Vector3(0f, 5f, -16f);
			val16.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
			TechExpeditionMarkerProducer obj9 = val16.AddComponent<TechExpeditionMarkerProducer>();
			obj9.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj9).m_allowFunction = true;
			GameObject val17 = new GameObject("Terminal 1");
			val17.transform.parent = val14.transform;
			val17.transform.localPosition = new Vector3(0f, 0f, -16.1f);
			val17.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
			TechDataCenterMarkerProducer obj10 = val17.AddComponent<TechDataCenterMarkerProducer>();
			((LG_MarkerProducer)obj10).m_groupData = block;
			((LG_MarkerProducer)obj10).m_allowFunction = true;
			obj10.m_markerDataBlockID = 77u;
			for (int k = 1; k < 13; k++)
			{
				if (k - 6 != 0)
				{
					GameObject val18 = new GameObject($"Locker {k}");
					val18.transform.parent = val14.transform;
					val18.transform.localPosition = new Vector3((float)(k - 6), 0f, -16.1f);
					val18.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
					TechDataCenterMarkerProducer obj11 = val18.AddComponent<TechDataCenterMarkerProducer>();
					((LG_MarkerProducer)obj11).m_groupData = block;
					((LG_MarkerProducer)obj11).m_allowFunction = true;
					obj11.m_markerDataBlockID = 72u;
				}
			}
			foreach (Transform componentsInChild in Plugin.hirnudeadendgo.GetComponentsInChildren<Transform>())
			{
				((Object)((Component)componentsInChild).gameObject).hideFlags = (HideFlags)61;
			}
			try
			{
				AssetAPI.RegisterAsset("Assets/HirnuGeos/hirnugeos_deadend.prefab", (Object)(object)Plugin.hirnudeadendgo);
			}
			catch
			{
			}
		}
	}
	public class Hirnu_hub : MonoBehaviour
	{
		public static void OnFactoryBuildDone()
		{
			if ((Object)(object)Plugin.hirnuhubgo != (Object)null)
			{
				Plugin.hirnuhubgo.SetActive(false);
			}
		}

		public static void OnFactoryBuildStart(SubComplex subcomplex)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_00a5: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: 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_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0222: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: 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_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_0343: Unknown result type (might be due to invalid IL or missing references)
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Expected O, but got Unknown
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0410: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0442: Unknown result type (might be due to invalid IL or missing references)
			//IL_0499: Unknown result type (might be due to invalid IL or missing references)
			//IL_049e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0539: Unknown result type (might be due to invalid IL or missing references)
			//IL_053e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0550: Unknown result type (might be due to invalid IL or missing references)
			//IL_0563: Unknown result type (might be due to invalid IL or missing references)
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05de: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0603: Unknown result type (might be due to invalid IL or missing references)
			//IL_060d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0622: Unknown result type (might be due to invalid IL or missing references)
			//IL_078a: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f2: Expected O, but got Unknown
			//IL_07f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f9: Expected O, but got Unknown
			//IL_07f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0800: Expected O, but got Unknown
			//IL_0800: Unknown result type (might be due to invalid IL or missing references)
			//IL_0807: Expected O, but got Unknown
			//IL_083c: Unknown result type (might be due to invalid IL or missing references)
			//IL_085c: Unknown result type (might be due to invalid IL or missing references)
			//IL_08aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0909: Unknown result type (might be due to invalid IL or missing references)
			//IL_090e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0920: Unknown result type (might be due to invalid IL or missing references)
			//IL_0935: Unknown result type (might be due to invalid IL or missing references)
			//IL_093f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0954: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a14: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a73: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a78: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8a: 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_0aa9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abe: 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_0b30: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0707: Unknown result type (might be due to invalid IL or missing references)
			//IL_0725: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c09: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d07: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d47: 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_0d5e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d73: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de7: 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_0e14: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1b: Expected O, but got Unknown
			//IL_0e43: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e62: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ebc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f1c: Expected O, but got Unknown
			//IL_0f38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0faf: Unknown result type (might be due to invalid IL or missing references)
			Plugin.hirnuhubgo = null;
			Plugin.hirnuhubgo = new GameObject();
			Plugin.hirnuhubgo.SetActive(true);
			Plugin.L.LogInfo((object)"building hub-tile");
			Plugin.hirnuhubgo.SetActive(true);
			((Object)Plugin.hirnuhubgo).hideFlags = (HideFlags)61;
			Plugin.hirnuhubgo.layer = LayerManager.LAYER_DEFAULT;
			((Object)Plugin.hirnuhubgo).name = "hirnu_tile_hub";
			LG_Geomorph val = Plugin.hirnuhubgo.AddComponent<LG_Geomorph>();
			Plugin.hirnuhubgo.AddComponent<AIG_VoxelNodeVolume>();
			GameObject val2 = new GameObject("Area A");
			val2.transform.parent = Plugin.hirnuhubgo.transform;
			((Object)val2).name = "hirnu_tile_hub_a";
			GameObject val3 = new GameObject("AreaAIGraphSource");
			val3.transform.parent = val2.transform;
			Transform transform = val3.transform;
			transform.localPosition += new Vector3(-5f, 2f, 0f);
			LG_AreaAIGraphSource val4 = val3.AddComponent<LG_AreaAIGraphSource>();
			val4.m_position = new Vector3(0f, 2f, 0f);
			LG_Area val5 = val2.AddComponent<LG_Area>();
			val5.m_size = (LG_AreaSize)2;
			val5.m_geomorph = val;
			val.m_areas = Il2CppReferenceArray<LG_Area>.op_Implicit((LG_Area[])(object)new LG_Area[1] { val5 });
			GameObject val6 = new GameObject("Gate 1");
			val6.transform.parent = val2.transform;
			val6.transform.localPosition = new Vector3(-32f, 0f, 0f);
			val6.transform.localEulerAngles = new Vector3(0f, 270.0002f, 0f);
			((LG_ZoneExpander)val6.AddComponent<LG_Plug>()).m_subComplex = subcomplex;
			GameObject val7 = new GameObject("Gate 2");
			val7.transform.parent = val2.transform;
			val7.transform.localPosition = new Vector3(0f, 0f, 32f);
			val7.transform.localEulerAngles = new Vector3(0f, 0.0002f, 0f);
			LG_Plug obj = val7.AddComponent<LG_Plug>();
			((LG_ZoneExpander)obj).m_originalForward = new Vector3(0f, 0f, 1f);
			((LG_ZoneExpander)obj).m_hasOriginalForward = true;
			((LG_ZoneExpander)obj).m_subComplex = subcomplex;
			GameObject val8 = new GameObject("Gate 3");
			val8.transform.parent = val2.transform;
			val8.transform.localPosition = new Vector3(32f, 0f, 0f);
			val8.transform.localEulerAngles = new Vector3(0f, 89.9999f, 0f);
			((LG_ZoneExpander)val8.AddComponent<LG_Plug>()).m_subComplex = subcomplex;
			GameObject val9 = new GameObject("Gate 4");
			val9.transform.parent = val2.transform;
			val9.transform.localPosition = new Vector3(0f, 0f, -32f);
			val9.transform.localEulerAngles = new Vector3(0f, 179.9999f, 0f);
			LG_Plug obj2 = val9.AddComponent<LG_Plug>();
			((LG_ZoneExpander)obj2).m_originalForward = new Vector3(0f, 0f, -1f);
			((LG_ZoneExpander)obj2).m_hasOriginalForward = true;
			((LG_ZoneExpander)obj2).m_subComplex = subcomplex;
			val5.m_groupSource = val4;
			val5.m_geomorph = val;
			GameObject val10 = new GameObject("EnvProps");
			val10.transform.parent = val2.transform;
			val10.transform.localPosition = new Vector3(0f, 0f, 0f);
			MarkerGroupDataBlock block = GameDataBlockBase<MarkerGroupDataBlock>.GetBlock("Tech_DataCenter");
			GameObject val11 = new GameObject("Markers");
			val11.transform.parent = val2.transform;
			GameObject val12 = new GameObject("Fallback 1");
			val12.transform.parent = val11.transform;
			val12.transform.localPosition = new Vector3(0f, 0f, -22f);
			val12.AddComponent<TechDataCenterMarkerProducer>().m_markerDataBlockID = 63u;
			for (int i = -2; i < 3; i++)
			{
				GameObject val13 = new GameObject($"Marker {i} west");
				val13.transform.parent = val11.transform;
				val13.transform.localPosition = new Vector3(-2.5f, 0f, (float)i);
				val13.transform.localEulerAngles = new Vector3(0f, 270f, 0f);
				TechDataCenterMarkerProducer obj3 = val13.AddComponent<TechDataCenterMarkerProducer>();
				((LG_MarkerProducer)obj3).m_groupData = block;
				((LG_MarkerProducer)obj3).m_allowFunction = true;
				obj3.m_markerDataBlockID = 72u;
				GameObject val14 = new GameObject($"Marker {i} north");
				val14.transform.parent = val11.transform;
				val14.transform.localPosition = new Vector3((float)i, 0f, 2.5f);
				val14.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				TechDataCenterMarkerProducer obj4 = val14.AddComponent<TechDataCenterMarkerProducer>();
				((LG_MarkerProducer)obj4).m_groupData = block;
				((LG_MarkerProducer)obj4).m_allowFunction = true;
				obj4.m_markerDataBlockID = 72u;
				GameObject val15 = new GameObject($"Marker {i} east");
				val15.transform.parent = val11.transform;
				val15.transform.localPosition = new Vector3(2.5f, 0f, (float)i);
				val15.transform.localEulerAngles = new Vector3(0f, 90f, 0f);
				TechDataCenterMarkerProducer obj5 = val15.AddComponent<TechDataCenterMarkerProducer>();
				((LG_MarkerProducer)obj5).m_groupData = block;
				((LG_MarkerProducer)obj5).m_allowFunction = true;
				obj5.m_markerDataBlockID = 72u;
				GameObject val16 = new GameObject($"Marker {i} south");
				val16.transform.parent = val11.transform;
				val16.transform.localPosition = new Vector3((float)i, 0f, -2.5f);
				val16.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
				TechDataCenterMarkerProducer obj6 = val16.AddComponent<TechDataCenterMarkerProducer>();
				((LG_MarkerProducer)obj6).m_groupData = block;
				((LG_MarkerProducer)obj6).m_allowFunction = true;
				obj6.m_markerDataBlockID = 77u;
			}
			for (int j = -30; j < 32; j += 4)
			{
				for (int k = -30; k < 32; k += 4)
				{
					if ((j >= -24 || k <= -8 || k >= 8) && (j <= 24 || k <= -8 || k >= 8) && (k >= -24 || j <= -8 || j >= 8) && (k <= 24 || j <= -8 || j >= 8))
					{
						GameObject obj7 = GameObject.CreatePrimitive((PrimitiveType)5);
						((Object)obj7).name = "hirnu_floor";
						obj7.transform.parent = val10.transform;
						obj7.transform.localPosition = new Vector3((float)j, -0.05f, (float)k);
						obj7.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
						obj7.transform.localScale = new Vector3(4f, 4f, 4f);
					}
				}
			}
			GameObject obj8 = GameObject.CreatePrimitive((PrimitiveType)5);
			((Object)obj8.transform).name = "hirnu_ceiling";
			obj8.transform.parent = val10.transform;
			obj8.transform.localPosition = new Vector3(0f, 8f, 0f);
			obj8.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
			obj8.transform.localScale = new Vector3(64f, 64f, 64f);
			((Renderer)obj8.GetComponent<MeshRenderer>()).material.SetTexture("_MainTex", (Texture)(object)Texture2D.blackTexture);
			GameObject val17 = new GameObject();
			GameObject val18 = new GameObject();
			GameObject val19 = new GameObject();
			GameObject val20 = new GameObject();
			((Object)val17).name = "hirnu_wall_sw1";
			val17.transform.SetParent(val10.transform);
			val17.transform.localPosition = new Vector3(-20f, 4f, -20f);
			val17.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			for (float num = -14.97f; num < 17f; num += 3.394f)
			{
				GameObject obj9 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj9).name = "hirnu_wall";
				obj9.transform.parent = val17.transform;
				obj9.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj9.transform.localScale = new Vector3(3.394f, 8f, 3.394f);
				obj9.transform.localPosition = new Vector3(num, 0f, 0f);
			}
			GameObject val21 = new GameObject("Sign 1");
			val21.transform.parent = val11.transform;
			val21.transform.localPosition = new Vector3(-20f, 5f, -20f);
			val21.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			TechExpeditionMarkerProducer obj10 = val21.AddComponent<TechExpeditionMarkerProducer>();
			obj10.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj10).m_allowFunction = true;
			((Object)val18).name = "hirnu_wall_nw1";
			val18.transform.SetParent(val10.transform);
			val18.transform.localPosition = new Vector3(-20f, 4f, 20f);
			val18.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			for (float num2 = -14.97f; num2 < 17f; num2 += 3.394f)
			{
				GameObject obj11 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj11).name = "hirnu_wall";
				obj11.transform.parent = val18.transform;
				obj11.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj11.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj11.transform.localPosition = new Vector3(num2, 0f, 0f);
			}
			GameObject val22 = new GameObject("Sign 2");
			val22.transform.parent = val11.transform;
			val22.transform.localPosition = new Vector3(-20f, 5f, 20f);
			val22.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			TechExpeditionMarkerProducer obj12 = val22.AddComponent<TechExpeditionMarkerProducer>();
			obj12.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj12).m_allowFunction = true;
			((Object)val19).name = "hirnu_wall_ne1";
			val19.transform.SetParent(val10.transform);
			val19.transform.localPosition = new Vector3(20f, 4f, 20f);
			val19.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			for (float num3 = -14.97f; num3 < 17f; num3 += 3.394f)
			{
				GameObject obj13 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj13).name = "hirnu_wall";
				obj13.transform.parent = val19.transform;
				obj13.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj13.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj13.transform.localPosition = new Vector3(num3, 0f, 0f);
			}
			GameObject val23 = new GameObject("Sign 3");
			val23.transform.parent = val11.transform;
			val23.transform.localPosition = new Vector3(20f, 5f, 20f);
			val23.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			TechExpeditionMarkerProducer obj14 = val23.AddComponent<TechExpeditionMarkerProducer>();
			obj14.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj14).m_allowFunction = true;
			((Object)val20).name = "hirnu_wall_se1";
			val20.transform.SetParent(val10.transform);
			val20.transform.localPosition = new Vector3(20f, 4f, -20f);
			val20.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			for (float num4 = -14.97f; num4 < 17f; num4 += 3.394f)
			{
				GameObject obj15 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj15).name = "hirnu_wall";
				obj15.transform.parent = val20.transform;
				obj15.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj15.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj15.transform.localPosition = new Vector3(num4, 0f, 0f);
			}
			GameObject val24 = new GameObject("Sign 4");
			val24.transform.parent = val11.transform;
			val24.transform.localPosition = new Vector3(20f, 5f, -20f);
			val24.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			TechExpeditionMarkerProducer obj16 = val24.AddComponent<TechExpeditionMarkerProducer>();
			obj16.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj16).m_allowFunction = true;
			GameObject obj17 = GameObject.CreatePrimitive((PrimitiveType)3);
			((Object)obj17).name = "hirnu_wall";
			obj17.transform.parent = val10.transform;
			obj17.transform.localPosition = new Vector3(0f, 4f, 0f);
			obj17.transform.localScale = new Vector3(5f, 8.2f, 5f);
			GameObject val25 = new GameObject("Lights");
			val25.transform.parent = val2.transform;
			val25.transform.localPosition = new Vector3(0f, 0f, 0f);
			foreach (KeyValuePair<Vector3, int> item in new Dictionary<Vector3, int>
			{
				[new Vector3(-2.5f, 7f, 0f)] = 90,
				[new Vector3(0f, 7f, 2.5f)] = 180,
				[new Vector3(2.5f, 7f, 0f)] = 270,
				[new Vector3(0f, 7f, -2.5f)] = 0
			})
			{
				GameObject obj18 = Object.Instantiate<GameObject>(((Component)Plugin.hirnulamp).gameObject);
				GameObject val26 = new GameObject($"Light {item.Value}");
				val26.transform.parent = val25.transform;
				val26.transform.localPosition = item.Key;
				val26.transform.localEulerAngles = new Vector3(0f, (float)item.Value, 0f);
				obj18.transform.parent = val26.transform;
				obj18.transform.localPosition = new Vector3(0f, 0f, 0f);
				obj18.transform.localRotation = new Quaternion(0f, 0f, 0f, 0f);
			}
			foreach (Transform componentsInChild in Plugin.hirnuhubgo.GetComponentsInChildren<Transform>())
			{
				((Object)((Component)componentsInChild).gameObject).hideFlags = (HideFlags)61;
			}
			try
			{
				AssetAPI.RegisterAsset("Assets/HirnuGeos/hirnugeos_hub.prefab", (Object)(object)Plugin.hirnuhubgo);
			}
			catch
			{
			}
		}
	}
	public class Hirnu_hub_elevator : MonoBehaviour
	{
		public static LG_PrefabSpawner hirnulamp;

		public static GameObject hirnulampfixture;

		public static void OnFactoryBuildDone()
		{
			if ((Object)(object)Plugin.hirnuhubelevatorgo != (Object)null)
			{
				Plugin.hirnuhubelevatorgo.SetActive(false);
			}
		}

		public static void OnFactoryBuildStart(SubComplex subcomplex)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Expected O, but got Unknown
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Expected O, but got Unknown
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: 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_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_0263: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0301: Unknown result type (might be due to invalid IL or missing references)
			//IL_0333: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0401: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0519: Unknown result type (might be due to invalid IL or missing references)
			//IL_0539: Unknown result type (might be due to invalid IL or missing references)
			//IL_0558: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_05db: Unknown result type (might be due to invalid IL or missing references)
			//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0637: Unknown result type (might be due to invalid IL or missing references)
			//IL_064b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0650: Unknown result type (might be due to invalid IL or missing references)
			//IL_0661: Unknown result type (might be due to invalid IL or missing references)
			//IL_0676: 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_0694: Unknown result type (might be due to invalid IL or missing references)
			//IL_0699: Unknown result type (might be due to invalid IL or missing references)
			//IL_06aa: 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_06c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06de: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0701: Unknown result type (might be due to invalid IL or missing references)
			//IL_0712: Unknown result type (might be due to invalid IL or missing references)
			//IL_0727: Unknown result type (might be due to invalid IL or missing references)
			//IL_0731: 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_0759: Unknown result type (might be due to invalid IL or missing references)
			//IL_0764: Unknown result type (might be due to invalid IL or missing references)
			//IL_0769: Unknown result type (might be due to invalid IL or missing references)
			//IL_077a: Unknown result type (might be due to invalid IL or missing references)
			//IL_078f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0799: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0820: Unknown result type (might be due to invalid IL or missing references)
			//IL_0827: Expected O, but got Unknown
			//IL_084f: Unknown result type (might be due to invalid IL or missing references)
			//IL_086a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0871: Expected O, but got Unknown
			//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_089f: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b4: 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_0af9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bac: Expected O, but got Unknown
			//IL_0bac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb3: Expected O, but got Unknown
			//IL_0bb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bba: Expected O, but got Unknown
			//IL_0bba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc1: Expected O, but got Unknown
			//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ccd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ddd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e41: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f4c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f6b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1048: Unknown result type (might be due to invalid IL or missing references)
			//IL_1068: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_10da: Unknown result type (might be due to invalid IL or missing references)
			//IL_10f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_111a: Unknown result type (might be due to invalid IL or missing references)
			//IL_111f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1131: Unknown result type (might be due to invalid IL or missing references)
			//IL_1146: Unknown result type (might be due to invalid IL or missing references)
			//IL_1150: Unknown result type (might be due to invalid IL or missing references)
			//IL_1165: Unknown result type (might be due to invalid IL or missing references)
			//IL_1182: Unknown result type (might be due to invalid IL or missing references)
			//IL_1189: Expected O, but got Unknown
			//IL_11b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c3: Expected O, but got Unknown
			//IL_11ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_120c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1216: Unknown result type (might be due to invalid IL or missing references)
			//IL_121d: Expected O, but got Unknown
			//IL_1246: Unknown result type (might be due to invalid IL or missing references)
			//IL_1266: Unknown result type (might be due to invalid IL or missing references)
			//IL_1270: Unknown result type (might be due to invalid IL or missing references)
			//IL_1277: Expected O, but got Unknown
			//IL_12a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_12c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_1319: Unknown result type (might be due to invalid IL or missing references)
			//IL_1338: Unknown result type (might be due to invalid IL or missing references)
			//IL_1352: Unknown result type (might be due to invalid IL or missing references)
			//IL_13c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_13e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1402: Unknown result type (might be due to invalid IL or missing references)
			//IL_1479: Unknown result type (might be due to invalid IL or missing references)
			//IL_1498: Unknown result type (might be due to invalid IL or missing references)
			//IL_14b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_158f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1596: Expected O, but got Unknown
			//IL_15be: Unknown result type (might be due to invalid IL or missing references)
			//IL_15dd: 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_1617: Unknown result type (might be due to invalid IL or missing references)
			//IL_1633: Unknown result type (might be due to invalid IL or missing references)
			//IL_1529: Unknown result type (might be due to invalid IL or missing references)
			//IL_1548: Unknown result type (might be due to invalid IL or missing references)
			//IL_1562: Unknown result type (might be due to invalid IL or missing references)
			//IL_1690: Unknown result type (might be due to invalid IL or missing references)
			//IL_1697: Expected O, but got Unknown
			//IL_16b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_16d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_1707: Unknown result type (might be due to invalid IL or missing references)
			//IL_172a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1755: Unknown result type (might be due to invalid IL or missing references)
			//IL_175a: Unknown result type (might be due to invalid IL or missing references)
			//IL_176c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1781: Unknown result type (might be due to invalid IL or missing references)
			//IL_178b: Unknown result type (might be due to invalid IL or missing references)
			//IL_17a0: Unknown result type (might be due to invalid IL or missing references)
			subcomplex = Builder.LayerBuildDatas[0].m_zoneBuildDatas[0].SubComplex;
			Plugin.hirnuhubelevatorgo = new GameObject();
			ManualLogSource l = Plugin.L;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(39, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("building hub-elevator-tile, subcomplex ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<SubComplex>(subcomplex);
			}
			l.LogInfo(val);
			Plugin.hirnuhubelevatorgo.SetActive(true);
			((Object)Plugin.hirnuhubelevatorgo).hideFlags = (HideFlags)61;
			Plugin.hirnuhubelevatorgo.layer = LayerManager.LAYER_DEFAULT;
			((Object)Plugin.hirnuhubelevatorgo).name = "hirnu_tile_hub_elevator";
			LG_FloorTransition val2 = Plugin.hirnuhubelevatorgo.AddComponent<LG_FloorTransition>();
			val2.m_shapeType = (LG_TileShapeType)1;
			val2.m_transitionType = (LG_FloorTransitionType)2;
			ElevatorShaftLanding val3 = Plugin.hirnuhubelevatorgo.AddComponent<ElevatorShaftLanding>();
			Plugin.hirnuhubelevatorgo.AddComponent<AIG_VoxelNodeVolume>();
			GameObject val4 = new GameObject("Area A");
			val4.transform.parent = Plugin.hirnuhubelevatorgo.transform;
			((Object)val4).name = "hirnu_tile_hub_elevator_a";
			GameObject val5 = new GameObject("AreaAIGraphSource");
			val5.transform.parent = val4.transform;
			Transform transform = val5.transform;
			transform.localPosition += new Vector3(-5f, 2f, 0f);
			LG_AreaAIGraphSource val6 = val5.AddComponent<LG_AreaAIGraphSource>();
			val6.m_position = new Vector3(0f, 2f, 0f);
			LG_Area val7 = val4.AddComponent<LG_Area>();
			val7.m_size = (LG_AreaSize)2;
			val7.m_geomorph = (LG_Geomorph)(object)val2;
			((LG_Geomorph)val2).m_areas = Il2CppReferenceArray<LG_Area>.op_Implicit((LG_Area[])(object)new LG_Area[1] { val7 });
			GameObject val8 = ComponentExt.AddChildGameObject((Component)(object)val4.transform, "ExpeditionExitScanAlign");
			val8.transform.localPosition = new Vector3(0.32f, 0.4f, 15.27f);
			foreach (Transform componentsInChild in ((Il2CppObjectBase)AssetAPI.GetLoadedAsset("Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_32x32_elevator_shaft_lab_03.prefab")).Cast<GameObject>().GetComponentsInChildren<Transform>())
			{
				if (((Object)componentsInChild).name == "ElevatorCargoAlign")
				{
					Plugin.hirnucargocage = Object.Instantiate<GameObject>(((Component)componentsInChild).gameObject);
				}
			}
			GameObject val9 = Object.Instantiate<GameObject>(Plugin.hirnucargocage);
			Plugin.hirnucargocage.transform.position = new Vector3(0f, -50f, 0f);
			val9.transform.parent = val4.transform;
			val9.transform.position = new Vector3(0f, 0f, 0f);
			val9.transform.localPosition = new Vector3(0f, 0f, 14f);
			val3.m_cargoCageAlign = val9.transform;
			val3.m_securityScanAlign = val8.transform;
			GameObject val10 = ComponentExt.AddChildGameObject((Component)(object)val4.transform, "spawn");
			val10.transform.localPosition = new Vector3(-3.136f, 1.338f, 13.661f);
			GameObject val11 = ComponentExt.AddChildGameObject((Component)(object)val4.transform, "spawn (2)");
			val11.transform.localPosition = new Vector3(-1.542f, 1.135f, 13.099f);
			GameObject val12 = ComponentExt.AddChildGameObject((Component)(object)val4.transform, "spawn (3)");
			val12.transform.localPosition = new Vector3(1.284f, 1.135f, 13.099f);
			GameObject val13 = ComponentExt.AddChildGameObject((Component)(object)val4.transform, "spawn (4)");
			val13.transform.localPosition = new Vector3(2.89f, 1.405f, 12.08f);
			val2.m_spawnPoints = new Il2CppReferenceArray<Transform>((Transform[])(object)new Transform[4] { val10.transform, val11.transform, val12.transform, val13.transform });
			GameObject val14 = new GameObject("Gate");
			val14.transform.parent = val4.transform;
			val14.transform.localPosition = new Vector3(0f, 0f, 32f);
			val14.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			GameObject obj = ComponentExt.AddChildGameObject((Component)(object)val14.transform, "plug");
			GameObject val15 = ComponentExt.AddChildGameObject((Component)(object)obj.transform, "crossing");
			ComponentExt.AddChildGameObject((Component)(object)obj.transform, "behind");
			GameObject val16 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 1");
			GameObject val17 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 2");
			GameObject val18 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 3");
			GameObject val19 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 4");
			GameObject val20 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 5");
			GameObject obj2 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "FreeNode 6");
			val16.transform.localPosition = new Vector3(-1.528f, 1.16f, 32f);
			val17.transform.localPosition = new Vector3(-0.905f, 0.168f, 32f);
			val18.transform.localPosition = new Vector3(-0.185f, 0.168f, 32f);
			val19.transform.localPosition = new Vector3(0.487f, 0.168f, 32f);
			val20.transform.localPosition = new Vector3(1.242f, 0.168f, 32f);
			obj2.transform.localPosition = new Vector3(1.974f, 0.168f, 32f);
			AIG_FreeNode val21 = val16.AddComponent<AIG_FreeNode>();
			AIG_FreeNode val22 = val17.AddComponent<AIG_FreeNode>();
			AIG_FreeNode val23 = val18.AddComponent<AIG_FreeNode>();
			AIG_FreeNode val24 = val19.AddComponent<AIG_FreeNode>();
			AIG_FreeNode val25 = val20.AddComponent<AIG_FreeNode>();
			AIG_FreeNode val26 = obj2.AddComponent<AIG_FreeNode>();
			GameObject obj3 = ComponentExt.AddChildGameObject((Component)(object)val15.transform, "PortalHelper");
			obj3.transform.localPosition = new Vector3(0f, 0f, 32f);
			obj3.transform.localScale = new Vector3(16f, 8f, 1f);
			obj3.AddComponent<C_PortalHelper>();
			LG_PlugCustom val27 = val14.AddComponent<LG_PlugCustom>();
			val14.AddComponent<AIG_PlugSocket>();
			AIG_DoorInsert val28 = val14.AddComponent<AIG_DoorInsert>();
			Il2CppReferenceArray<AIG_FreeNode> nodes = new Il2CppReferenceArray<AIG_FreeNode>((AIG_FreeNode[])(object)new AIG_FreeNode[6] { val21, val22, val23, val24, val25, val26 });
			val28.m_nodes = nodes;
			((LG_ZoneExpander)val27).m_subComplex = subcomplex;
			((LG_ZoneExpander)val27).m_linksFrom = val7;
			GameObject val29 = new GameObject("Gate X");
			val29.transform.parent = val4.transform;
			val29.transform.localPosition = new Vector3(0f, 0f, 32f);
			LG_Plug val30 = val29.AddComponent<LG_Plug>();
			((LG_ZoneExpander)val30).m_subComplex = subcomplex;
			GameObject val31 = new GameObject("Gate 2");
			val31.transform.parent = val4.transform;
			val31.transform.localPosition = new Vector3(-32f, 0f, 0f);
			val31.transform.localEulerAngles = new Vector3(0f, 270.0002f, 0f);
			LG_Plug val32 = val31.AddComponent<LG_Plug>();
			((LG_ZoneExpander)val32).m_subComplex = subcomplex;
			GameObject val33 = new GameObject("Gate 3");
			val33.transform.parent = val4.transform;
			val33.transform.localPosition = new Vector3(32f, 0f, 0f);
			val33.transform.localEulerAngles = new Vector3(0f, 89.9999f, 0f);
			LG_Plug val34 = val33.AddComponent<LG_Plug>();
			((LG_ZoneExpander)val34).m_subComplex = subcomplex;
			GameObject val35 = new GameObject("Gate 4");
			val35.transform.parent = val4.transform;
			val35.transform.localPosition = new Vector3(0f, 0f, -32f);
			val35.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
			LG_Plug val36 = val35.AddComponent<LG_Plug>();
			((LG_Geomorph)val2).m_plugs = new List<LG_Plug>();
			((LG_Geomorph)val2).m_plugs.Add((LG_Plug)(object)val27);
			((LG_Geomorph)val2).m_plugs.Add(val32);
			((LG_Geomorph)val2).m_plugs.Add(val34);
			((LG_Geomorph)val2).m_plugs.Add(val36);
			((LG_Geomorph)val2).m_plugs.Add(val30);
			val7.m_groupSource = val6;
			val7.m_geomorph = (LG_Geomorph)(object)val2;
			GameObject val37 = new GameObject("EnvProps");
			val37.transform.parent = val4.transform;
			val37.transform.localPosition = new Vector3(0f, 0f, 0f);
			MarkerGroupDataBlock block = GameDataBlockBase<MarkerGroupDataBlock>.GetBlock("Tech_DataCenter");
			GameObject val38 = new GameObject("Markers");
			val38.transform.parent = val4.transform;
			GameObject val39 = new GameObject("Fallback 1");
			val39.transform.parent = val38.transform;
			val39.transform.localPosition = new Vector3(0f, 0f, 22f);
			val39.AddComponent<TechDataCenterMarkerProducer>().m_markerDataBlockID = 63u;
			for (int i = -31; i < 32; i += 2)
			{
				for (int j = -31; j < 32; j += 2)
				{
					if ((i >= -24 || j <= -8 || j >= 8) && (i <= 24 || j <= -8 || j >= 8) && (j >= -24 || i <= -8 || i >= 8) && (j <= 24 || i <= -8 || i >= 8))
					{
						GameObject obj4 = GameObject.CreatePrimitive((PrimitiveType)5);
						((Object)obj4.gameObject).name = "hirnu_floor";
						obj4.transform.parent = val37.transform;
						obj4.transform.localPosition = new Vector3((float)i, -0.05f, (float)j);
						obj4.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
						obj4.transform.localScale = new Vector3(2f, 2f, 2f);
					}
				}
			}
			for (int k = -31; k < 32; k += 2)
			{
				for (int m = -31; m < 32; m += 2)
				{
					if (k <= -16 || k >= 16 || m <= -16 || m >= 16)
					{
						GameObject obj5 = GameObject.CreatePrimitive((PrimitiveType)5);
						((Object)obj5.gameObject).name = "hirnu_wall";
						obj5.transform.parent = val37.transform;
						obj5.transform.localPosition = new Vector3((float)k, 8f, (float)m);
						obj5.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
						obj5.transform.localScale = new Vector3(2f, 2f, 2f);
					}
				}
			}
			GameObject obj6 = GameObject.CreatePrimitive((PrimitiveType)5);
			GameObject val40 = GameObject.CreatePrimitive((PrimitiveType)5);
			((Object)obj6.gameObject).name = "hirnu_wall";
			obj6.transform.parent = val15.transform;
			obj6.transform.localPosition = new Vector3(-8f, 4f, 32f);
			obj6.transform.localScale = new Vector3(1f, 8f, 1f);
			obj6.transform.localEulerAngles = new Vector3(0f, 270f, 0f);
			((Object)val40.gameObject).name = "hirnu_wall";
			val40.transform.parent = val15.transform;
			val40.transform.localPosition = new Vector3(8f, 4f, 32f);
			val40.transform.localScale = new Vector3(1f, 8f, 1f);
			val40.transform.localEulerAngles = new Vector3(0f, 90f, 0f);
			GameObject val41 = new GameObject();
			GameObject val42 = new GameObject();
			GameObject val43 = new GameObject();
			GameObject val44 = new GameObject();
			((Object)val41.gameObject).name = "hirnu_wall_sw1";
			val41.transform.SetParent(val37.transform);
			val41.transform.localPosition = new Vector3(-20f, 4f, -20f);
			val41.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			for (float num = -14.97f; num < 17f; num += 3.394f)
			{
				GameObject obj7 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj7.transform).name = "hirnu_wall";
				obj7.transform.parent = val41.transform;
				obj7.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj7.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj7.transform.localPosition = new Vector3(num, 0f, 0f);
			}
			GameObject val45 = new GameObject("Sign 1");
			val45.transform.parent = val38.transform;
			val45.transform.localPosition = new Vector3(-20f, 5f, -20f);
			val45.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			TechExpeditionMarkerProducer obj8 = val45.AddComponent<TechExpeditionMarkerProducer>();
			obj8.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj8).m_allowFunction = true;
			((Object)val42).name = "hirnu_wall_nw1";
			val42.transform.SetParent(val37.transform);
			val42.transform.localPosition = new Vector3(-20f, 4f, 20f);
			val42.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			for (float num2 = -14.97f; num2 < 17f; num2 += 3.394f)
			{
				GameObject obj9 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj9.gameObject).name = "hirnu_wall";
				obj9.transform.parent = val42.transform;
				obj9.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj9.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj9.transform.localPosition = new Vector3(num2, 0f, 0f);
			}
			GameObject val46 = new GameObject("Sign 2");
			val46.transform.parent = val38.transform;
			val46.transform.localPosition = new Vector3(-20f, 5f, 20f);
			val46.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			TechExpeditionMarkerProducer obj10 = val46.AddComponent<TechExpeditionMarkerProducer>();
			obj10.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj10).m_allowFunction = true;
			((Object)val43).name = "hirnu_wall_ne1";
			val43.transform.SetParent(val37.transform);
			val43.transform.localPosition = new Vector3(20f, 4f, 20f);
			val43.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			for (float num3 = -14.97f; num3 < 17f; num3 += 3.394f)
			{
				GameObject obj11 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj11.gameObject).name = "hirnu_wall";
				obj11.transform.parent = val43.transform;
				obj11.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj11.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj11.transform.localPosition = new Vector3(num3, 0f, 0f);
			}
			GameObject val47 = new GameObject("Sign 3");
			val47.transform.parent = val38.transform;
			val47.transform.localPosition = new Vector3(20f, 5f, 20f);
			val47.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			TechExpeditionMarkerProducer obj12 = val47.AddComponent<TechExpeditionMarkerProducer>();
			obj12.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj12).m_allowFunction = true;
			((Object)val44).name = "hirnu_wall_se1";
			val44.transform.SetParent(val37.transform);
			val44.transform.localPosition = new Vector3(20f, 4f, -20f);
			val44.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			for (float num4 = -14.97f; num4 < 17f; num4 += 3.394f)
			{
				GameObject obj13 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj13.gameObject).name = "hirnu_wall";
				obj13.transform.parent = val44.transform;
				obj13.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj13.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj13.transform.localPosition = new Vector3(num4, 0f, 0f);
			}
			GameObject val48 = new GameObject("Sign 4");
			val48.transform.parent = val38.transform;
			val48.transform.localPosition = new Vector3(20f, 5f, -20f);
			val48.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			TechExpeditionMarkerProducer obj14 = val48.AddComponent<TechExpeditionMarkerProducer>();
			obj14.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj14).m_allowFunction = true;
			GameObject val49 = new GameObject();
			val49.transform.SetParent(val37.transform);
			val49.transform.localPosition = new Vector3(0f, 16f, 16f);
			GameObject val50 = new GameObject();
			val50.transform.SetParent(val37.transform);
			val50.transform.localPosition = new Vector3(16f, 16f, 0f);
			val50.transform.localEulerAngles = new Vector3(0f, 90f, 0f);
			GameObject val51 = new GameObject();
			val51.transform.SetParent(val37.transform);
			val51.transform.localPosition = new Vector3(-16f, 16f, 0f);
			val51.transform.localEulerAngles = new Vector3(0f, 270f, 0f);
			GameObject val52 = new GameObject();
			val52.transform.SetParent(val37.transform);
			val52.transform.localPosition = new Vector3(0f, 16f, -16f);
			val52.transform.localEulerAngles = new Vector3(0f, 180f, 0f);
			for (int n = -4; n < 13; n += 8)
			{
				for (int num5 = -14; num5 < 15; num5 += 4)
				{
					GameObject obj15 = GameObject.CreatePrimitive((PrimitiveType)5);
					((Object)obj15.transform).name = "hirnu_wall";
					obj15.transform.SetParent(val49.transform);
					obj15.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					obj15.transform.localScale = new Vector3(4f, 8f, 4f);
					obj15.transform.localPosition = new Vector3((float)num5, (float)n, 0f);
				}
			}
			for (int num6 = -4; num6 < 13; num6 += 8)
			{
				for (int num7 = -14; num7 < 15; num7 += 4)
				{
					GameObject obj16 = GameObject.CreatePrimitive((PrimitiveType)5);
					((Object)obj16.transform).name = "hirnu_wall";
					obj16.transform.SetParent(val50.transform);
					obj16.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					obj16.transform.localScale = new Vector3(4f, 8f, 4f);
					obj16.transform.localPosition = new Vector3((float)num7, (float)num6, 0f);
				}
			}
			for (int num8 = -4; num8 < 13; num8 += 8)
			{
				for (int num9 = -14; num9 < 15; num9 += 4)
				{
					GameObject obj17 = GameObject.CreatePrimitive((PrimitiveType)5);
					((Object)obj17.transform).name = "hirnu_wall";
					obj17.transform.SetParent(val51.transform);
					obj17.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					obj17.transform.localScale = new Vector3(4f, 8f, 4f);
					obj17.transform.localPosition = new Vector3((float)num9, (float)num8, 0f);
				}
			}
			for (int num10 = -4; num10 < 13; num10 += 8)
			{
				for (int num11 = -14; num11 < 15; num11 += 4)
				{
					GameObject obj18 = GameObject.CreatePrimitive((PrimitiveType)5);
					((Object)obj18.transform).name = "hirnu_wall";
					obj18.transform.SetParent(val52.transform);
					obj18.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					obj18.transform.localScale = new Vector3(4f, 8f, 4f);
					obj18.transform.localPosition = new Vector3((float)num11, (float)num10, 0f);
				}
			}
			GameObject val53 = new GameObject("Lights");
			val53.transform.parent = val4.transform;
			val53.transform.localPosition = new Vector3(0f, 0f, 0f);
			foreach (KeyValuePair<Vector3, int> item in new Dictionary<Vector3, int>
			{
				[new Vector3(-16f, 8f, 0f)] = 270,
				[new Vector3(0f, 8f, 16f)] = 0,
				[new Vector3(16f, 8f, 0f)] = 90,
				[new Vector3(0f, 8f, -16f)] = 180
			})
			{
				GameObject obj19 = Object.Instantiate<GameObject>(((Component)Plugin.hirnulamp).gameObject);
				GameObject val54 = new GameObject($"Light {item.Value}");
				val54.transform.parent = val53.transform;
				val54.transform.localPosition = item.Key;
				val54.transform.localEulerAngles = new Vector3(0f, (float)item.Value, 0f);
				obj19.transform.parent = val54.transform;
				obj19.transform.localPosition = new Vector3(0f, 0f, 0f);
				obj19.transform.localRotation = new Quaternion(0f, 0f, 0f, 0f);
			}
			GameObject val55 = new GameObject("Terminal 1");
			val55.transform.parent = val38.transform;
			val55.transform.localPosition = new Vector3(19.4f, 0f, 19.4f);
			val55.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			TechDataCenterMarkerProducer obj20 = val55.AddComponent<TechDataCenterMarkerProducer>();
			((LG_MarkerProducer)obj20).m_groupData = block;
			((LG_MarkerProducer)obj20).m_allowFunction = true;
			obj20.m_markerDataBlockID = 77u;
			foreach (Transform componentsInChild2 in Plugin.hirnuhubelevatorgo.GetComponentsInChildren<Transform>())
			{
				((Object)((Component)componentsInChild2).gameObject).hideFlags = (HideFlags)61;
			}
			try
			{
				AssetAPI.RegisterAsset("Assets/HirnuGeos/hirnugeos_hub_elevator.prefab", (Object)(object)Plugin.hirnuhubelevatorgo);
			}
			catch
			{
			}
		}
	}
	public class Hirnu_hub_gencluster : MonoBehaviour
	{
		public static void OnFactoryBuildDone()
		{
			if ((Object)(object)Plugin.hirnuhubgengo != (Object)null)
			{
				Plugin.hirnuhubgengo.SetActive(false);
			}
		}

		public static void OnFactoryBuildStart(SubComplex subcomplex)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_00a5: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: 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_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0222: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: 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_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_0343: Unknown result type (might be due to invalid IL or missing references)
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Expected O, but got Unknown
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_053b: Unknown result type (might be due to invalid IL or missing references)
			//IL_055a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0579: Unknown result type (might be due to invalid IL or missing references)
			//IL_059c: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a3: Expected O, but got Unknown
			//IL_05a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05aa: Expected O, but got Unknown
			//IL_05aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b1: Expected O, but got Unknown
			//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b8: Expected O, but got Unknown
			//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_060d: Unknown result type (might be due to invalid IL or missing references)
			//IL_065b: Unknown result type (might be due to invalid IL or missing references)
			//IL_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0695: 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_06d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0705: Unknown result type (might be due to invalid IL or missing references)
			//IL_0757: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0824: Unknown result type (might be due to invalid IL or missing references)
			//IL_0829: Unknown result type (might be due to invalid IL or missing references)
			//IL_083b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0850: Unknown result type (might be due to invalid IL or missing references)
			//IL_085a: Unknown result type (might be due to invalid IL or missing references)
			//IL_086f: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_092f: Unknown result type (might be due to invalid IL or missing references)
			//IL_094e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0969: Unknown result type (might be due to invalid IL or missing references)
			//IL_098e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0993: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0499: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a99: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b43: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b6c: Expected O, but got Unknown
			//IL_0b94: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c71: Expected O, but got Unknown
			//IL_0c8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d04: Unknown result type (might be due to invalid IL or missing references)
			Plugin.hirnuhubgengo = null;
			Plugin.hirnuhubgengo = new GameObject();
			Plugin.hirnuhubgengo.SetActive(true);
			Plugin.L.LogInfo((object)"building hub-gencluster-tile");
			Plugin.hirnuhubgengo.SetActive(true);
			((Object)Plugin.hirnuhubgengo).hideFlags = (HideFlags)61;
			Plugin.hirnuhubgengo.layer = LayerManager.LAYER_DEFAULT;
			((Object)Plugin.hirnuhubgengo).name = "hirnu_tile_hub_gencluster";
			LG_Geomorph val = Plugin.hirnuhubgengo.AddComponent<LG_Geomorph>();
			Plugin.hirnuhubgengo.AddComponent<AIG_VoxelNodeVolume>();
			GameObject val2 = new GameObject("Area A");
			val2.transform.parent = Plugin.hirnuhubgengo.transform;
			((Object)val2).name = "hirnu_tile_hub_a";
			GameObject val3 = new GameObject("AreaAIGraphSource");
			val3.transform.parent = val2.transform;
			Transform transform = val3.transform;
			transform.localPosition += new Vector3(-5f, 2f, 0f);
			LG_AreaAIGraphSource val4 = val3.AddComponent<LG_AreaAIGraphSource>();
			val4.m_position = new Vector3(0f, 2f, 0f);
			LG_Area val5 = val2.AddComponent<LG_Area>();
			val5.m_size = (LG_AreaSize)2;
			val5.m_geomorph = val;
			val.m_areas = Il2CppReferenceArray<LG_Area>.op_Implicit((LG_Area[])(object)new LG_Area[1] { val5 });
			GameObject val6 = new GameObject("Gate 1");
			val6.transform.parent = val2.transform;
			val6.transform.localPosition = new Vector3(-32f, 0f, 0f);
			val6.transform.localEulerAngles = new Vector3(0f, 270.0002f, 0f);
			((LG_ZoneExpander)val6.AddComponent<LG_Plug>()).m_subComplex = subcomplex;
			GameObject val7 = new GameObject("Gate 2");
			val7.transform.parent = val2.transform;
			val7.transform.localPosition = new Vector3(0f, 0f, 32f);
			val7.transform.localEulerAngles = new Vector3(0f, 0.0002f, 0f);
			LG_Plug obj = val7.AddComponent<LG_Plug>();
			((LG_ZoneExpander)obj).m_originalForward = new Vector3(0f, 0f, 1f);
			((LG_ZoneExpander)obj).m_hasOriginalForward = true;
			((LG_ZoneExpander)obj).m_subComplex = subcomplex;
			GameObject val8 = new GameObject("Gate 3");
			val8.transform.parent = val2.transform;
			val8.transform.localPosition = new Vector3(32f, 0f, 0f);
			val8.transform.localEulerAngles = new Vector3(0f, 89.9999f, 0f);
			((LG_ZoneExpander)val8.AddComponent<LG_Plug>()).m_subComplex = subcomplex;
			GameObject val9 = new GameObject("Gate 4");
			val9.transform.parent = val2.transform;
			val9.transform.localPosition = new Vector3(0f, 0f, -32f);
			val9.transform.localEulerAngles = new Vector3(0f, 179.9999f, 0f);
			LG_Plug obj2 = val9.AddComponent<LG_Plug>();
			((LG_ZoneExpander)obj2).m_originalForward = new Vector3(0f, 0f, -1f);
			((LG_ZoneExpander)obj2).m_hasOriginalForward = true;
			((LG_ZoneExpander)obj2).m_subComplex = subcomplex;
			val5.m_groupSource = val4;
			val5.m_geomorph = val;
			GameObject val10 = new GameObject("EnvProps");
			val10.transform.parent = val2.transform;
			val10.transform.localPosition = new Vector3(0f, 0f, 0f);
			MarkerGroupDataBlock block = GameDataBlockBase<MarkerGroupDataBlock>.GetBlock("Tech_DataCenter");
			GameObject val11 = new GameObject("Markers");
			val11.transform.parent = val2.transform;
			GameObject val12 = new GameObject("Gencluster");
			val12.transform.parent = val11.transform;
			val12.transform.localPosition = new Vector3(0f, 0f, 0f);
			val12.transform.localEulerAngles = new Vector3(0f, 270f, 0f);
			TechDataCenterMarkerProducer obj3 = val12.AddComponent<TechDataCenterMarkerProducer>();
			((LG_MarkerProducer)obj3).m_groupData = block;
			((LG_MarkerProducer)obj3).m_allowFunction = true;
			obj3.m_markerDataBlockID = 59u;
			for (int i = -30; i < 32; i += 4)
			{
				for (int j = -30; j < 32; j += 4)
				{
					if ((i >= -24 || j <= -8 || j >= 8) && (i <= 24 || j <= -8 || j >= 8) && (j >= -24 || i <= -8 || i >= 8) && (j <= 24 || i <= -8 || i >= 8) && (i <= -8 || i >= 8 || j <= -12 || j >= 12))
					{
						GameObject obj4 = GameObject.CreatePrimitive((PrimitiveType)5);
						((Object)obj4).name = "hirnu_floor";
						obj4.transform.parent = val10.transform;
						obj4.transform.localPosition = new Vector3((float)i, -0.05f, (float)j);
						obj4.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
						obj4.transform.localScale = new Vector3(4f, 4f, 4f);
					}
				}
			}
			GameObject obj5 = GameObject.CreatePrimitive((PrimitiveType)5);
			((Object)obj5.transform).name = "hirnu_ceiling";
			obj5.transform.parent = val10.transform;
			obj5.transform.localPosition = new Vector3(0f, 8f, 0f);
			obj5.transform.localEulerAngles = new Vector3(270f, 0f, 0f);
			obj5.transform.localScale = new Vector3(64f, 64f, 64f);
			((Renderer)obj5.GetComponent<MeshRenderer>()).material.SetTexture("_MainTex", (Texture)(object)Texture2D.blackTexture);
			GameObject val13 = new GameObject();
			GameObject val14 = new GameObject();
			GameObject val15 = new GameObject();
			GameObject val16 = new GameObject();
			((Object)val13).name = "hirnu_wall_sw1";
			val13.transform.SetParent(val10.transform);
			val13.transform.localPosition = new Vector3(-20f, 4f, -20f);
			val13.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			for (float num = -14.97f; num < 17f; num += 3.394f)
			{
				GameObject obj6 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj6).name = "hirnu_wall";
				obj6.transform.parent = val13.transform;
				obj6.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj6.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj6.transform.localPosition = new Vector3(num, 0f, 0f);
			}
			GameObject val17 = new GameObject("Sign 1");
			val17.transform.parent = val11.transform;
			val17.transform.localPosition = new Vector3(-20f, 5f, -20f);
			val17.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			TechExpeditionMarkerProducer obj7 = val17.AddComponent<TechExpeditionMarkerProducer>();
			obj7.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj7).m_allowFunction = true;
			((Object)val14).name = "hirnu_wall_nw1";
			val14.transform.SetParent(val10.transform);
			val14.transform.localPosition = new Vector3(-20f, 4f, 20f);
			val14.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			for (float num2 = -14.97f; num2 < 17f; num2 += 3.394f)
			{
				GameObject obj8 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj8).name = "hirnu_wall";
				obj8.transform.parent = val14.transform;
				obj8.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj8.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj8.transform.localPosition = new Vector3(num2, 0f, 0f);
			}
			GameObject val18 = new GameObject("Sign 2");
			val18.transform.parent = val11.transform;
			val18.transform.localPosition = new Vector3(-20f, 5f, 20f);
			val18.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			TechExpeditionMarkerProducer obj9 = val18.AddComponent<TechExpeditionMarkerProducer>();
			obj9.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj9).m_allowFunction = true;
			((Object)val15).name = "hirnu_wall_ne1";
			val15.transform.SetParent(val10.transform);
			val15.transform.localPosition = new Vector3(20f, 4f, 20f);
			val15.transform.localEulerAngles = new Vector3(0f, 45f, 0f);
			for (float num3 = -14.97f; num3 < 17f; num3 += 3.394f)
			{
				GameObject obj10 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj10).name = "hirnu_wall";
				obj10.transform.parent = val15.transform;
				obj10.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj10.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj10.transform.localPosition = new Vector3(num3, 0f, 0f);
			}
			GameObject val19 = new GameObject("Sign 3");
			val19.transform.parent = val11.transform;
			val19.transform.localPosition = new Vector3(20f, 5f, 20f);
			val19.transform.localEulerAngles = new Vector3(0f, 225f, 0f);
			TechExpeditionMarkerProducer obj11 = val19.AddComponent<TechExpeditionMarkerProducer>();
			obj11.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj11).m_allowFunction = true;
			((Object)val16).name = "hirnu_wall_se1";
			val16.transform.SetParent(val10.transform);
			val16.transform.localPosition = new Vector3(20f, 4f, -20f);
			val16.transform.localEulerAngles = new Vector3(0f, 135f, 0f);
			for (float num4 = -14.97f; num4 < 17f; num4 += 3.394f)
			{
				GameObject obj12 = GameObject.CreatePrimitive((PrimitiveType)5);
				((Object)obj12).name = "hirnu_wall";
				obj12.transform.parent = val16.transform;
				obj12.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				obj12.transform.localScale = new Vector3(3.394f, 8.2f, 3.394f);
				obj12.transform.localPosition = new Vector3(num4, 0f, 0f);
			}
			GameObject val20 = new GameObject("Sign 4");
			val20.transform.parent = val11.transform;
			val20.transform.localPosition = new Vector3(20f, 5f, -20f);
			val20.transform.localEulerAngles = new Vector3(0f, 315f, 0f);
			TechExpeditionMarkerProducer obj13 = val20.AddComponent<TechExpeditionMarkerProducer>();
			obj13.m_markerDataBlockID = 10u;
			((LG_MarkerProducer)obj13).m_allowFunction = true;
			GameObject val21 = new GameObject("Lights");
			val21.transform.parent = val2.transform;
			val21.transform.localPosition = new Vector3(0f, 0f, 0f);
			foreach (KeyValuePair<Vector3, int> item in new Dictionary<Vector3, int>
			{
				[new Vector3(-20f, 7f, -20f)] = 225,
				[new Vector3(-20f, 7f, 20f)] = 315,
				[new Vector3(20f, 7f, 20f)] = 45,
				[new Vector3(20f, 7f, -20f)] = 135
			})
			{
				GameObject obj14 = Object.Instantiate<GameObject>(((Component)Plugin.hirnulamp).gameObject);
				GameObject val22 = new GameObject($"Light {item.Value}");
				val22.transform.parent = val21.transform;
				val22.transform.localPosition = item.Key;
				val22.transform.localEulerAngles = new Vector3(0f, (float)item.Value, 0f);
				obj14.transform.parent = val22.transform;
				obj14.transform.localPosition = new Vector3(0f, 0f, 0f);
				obj14.transform.localRotation = new Quaternion(0f, 0f, 0f, 0f);
			}
			foreach (Transform componentsInChild in Plugin.hirnuhubgengo.GetComponentsInChildren<Transform>())
			{
				((Object)((Component)componentsInChild).gameObject).hideFlags = (HideFlags)61;
			}
			try
			{
				AssetAPI.RegisterAsset("Assets/HirnuGeos/hirnugeos_hub_gencluster.prefab", (Object)(object)Plugin.hirnuhubgengo);
			}
			catch
			{
			}
		}
	}
	public class Hirnu_hub_png : MonoBehaviour
	{
		public static void OnFactoryBuildDone()
		{
			if ((Object)(object)Plugin.hirnuhubpnggo != (Object)null)
			{
				Plugin.hirnuhubpnggo.SetActive(false);
			}
		}

		public static void OnFactoryBuildStart(SubComplex subcomplex)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_00a5: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: 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_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0222: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: 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_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_0343: Unknown result type (might be due to invalid IL or missing references)
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0365: Expected O, but got Unknown
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a8: Unknown result type (might be