Decompiled source of LethalMDK v1.2.0

LethalMDK.dll

Decompiled 7 months ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using GameNetcodeStuff;
using HarmonyLib;
using Unity.Netcode;
using UnityEngine;
using UnityMDK;
using UnityMDK.Injection;
using UnityMDK.Logging;
using UnityMDK.Reflection;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("LethalMDK")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("LethalMDK")]
[assembly: AssemblyTitle("LethalMDK")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace LethalMDK
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("Saradora.LethalMDK", "Lethal MDK", "1.2.0")]
	public class PluginInitializer : BaseUnityPlugin
	{
		private readonly Harmony _harmonyInstance = new Harmony("Saradora.LethalMDK");

		private void Awake()
		{
			_harmonyInstance.PatchAll();
		}
	}
	public static class LethalMDK
	{
		public const string ModGuid = "Saradora.LethalMDK";

		public const string ModVersion = "1.2.0";

		public const string ModName = "Lethal MDK";
	}
	public class LayerMasks
	{
		public static readonly int Default = 1 << Layers.Default;

		public static readonly int InteractableObject = 1 << Layers.InteractableObject;

		public static readonly int Room = 1 << Layers.Room;

		public static readonly int ScanNode = 1 << Layers.ScanNode;
	}
	public static class Layers
	{
		public static readonly int Default = LayerMask.NameToLayer("Default");

		public static readonly int TransparentFX = LayerMask.NameToLayer("TransparentFX");

		public static readonly int IgnoreRaycast = LayerMask.NameToLayer("Ignore Raycast");

		public static readonly int Player = LayerMask.NameToLayer("Player");

		public static readonly int Water = LayerMask.NameToLayer("Water");

		public static readonly int UI = LayerMask.NameToLayer("UI");

		public static readonly int Props = LayerMask.NameToLayer("Props");

		public static readonly int HelmetVisor = LayerMask.NameToLayer("HelmetVisor");

		public static readonly int Room = LayerMask.NameToLayer("Room");

		public static readonly int InteractableObject = LayerMask.NameToLayer("InteractableObject");

		public static readonly int Foliage = LayerMask.NameToLayer("Foliage");

		public static readonly int Colliders = LayerMask.NameToLayer("Colliders");

		public static readonly int PhysicsObject = LayerMask.NameToLayer("PhysicsObject");

		public static readonly int Triggers = LayerMask.NameToLayer("Triggers");

		public static readonly int MapRadar = LayerMask.NameToLayer("MapRadar");

		public static readonly int NavigationSurface = LayerMask.NameToLayer("NavigationSurface");

		public static readonly int RoomLight = LayerMask.NameToLayer("RoomLight");

		public static readonly int Anomaly = LayerMask.NameToLayer("Anomaly");

		public static readonly int LineOfSight = LayerMask.NameToLayer("LineOfSight");

		public static readonly int Enemies = LayerMask.NameToLayer("Enemies");

		public static readonly int PlayerRagdoll = LayerMask.NameToLayer("PlayerRagdoll");

		public static readonly int MapHazards = LayerMask.NameToLayer("MapHazards");

		public static readonly int ScanNode = LayerMask.NameToLayer("ScanNode");

		public static readonly int EnemiesNotRendered = LayerMask.NameToLayer("EnemiesNotRendered");

		public static readonly int MiscLevelGeometry = LayerMask.NameToLayer("MiscLevelGeometry");

		public static readonly int Terrain = LayerMask.NameToLayer("Terrain");

		public static readonly int PlaceableShipObjects = LayerMask.NameToLayer("PlaceableShipObjects");

		public static readonly int PlacementBlocker = LayerMask.NameToLayer("PlacementBlocker");

		public static readonly int Railing = LayerMask.NameToLayer("Railing");

		public static readonly int DecalStickableSurface = LayerMask.NameToLayer("DecalStickableSurface");
	}
	public class Tags
	{
		public static readonly string InteractTrigger = "InteractTrigger";
	}
	public class Player
	{
		public static PlayerControllerB LocalPlayer
		{
			get
			{
				if (!Object.op_Implicit((Object)(object)GameNetworkManager.Instance))
				{
					return null;
				}
				return GameNetworkManager.Instance.localPlayerController;
			}
		}
	}
	[SceneConstructor]
	public class Prefabs
	{
		public const string P4x4BigStairTile = "4x4BigStairTile";

		public const string P4x4ServerRoomTile = "4x4ServerRoomTile";

		public const string PAirhorn = "Airhorn";

		public const string PBaboonHawkEnemy = "BaboonHawkEnemy";

		public const string PBBFlashlight = "BBFlashlight";

		public const string PBeeHatContainer = "BeeHatContainer";

		public const string PBigBolt = "BigBolt";

		public const string PBigDoor = "BigDoor";

		public const string PBigDoorSpawn = "BigDoorSpawn";

		public const string PBinFullOfBottles = "BinFullOfBottles";

		public const string PBinoculars = "Binoculars";

		public const string PBlob = "Blob";

		public const string PBloodDecal = "BloodDecal";

		public const string PBodyScanDisplay = "BodyScanDisplay";

		public const string PBoombox = "Boombox";

		public const string PBreakerBox = "BreakerBox";

		public const string PBrickDoorBlockerForkTile = "BrickDoorBlockerForkTile";

		public const string PBunnyHatContainer = "BunnyHatContainer";

		public const string PBunnyTailContainer = "BunnyTailContainer";

		public const string PButlerBees = "ButlerBees";

		public const string PButlerEnemy = "ButlerEnemy";

		public const string PCandy = "Candy";

		public const string PCashRegisterItem = "CashRegisterItem";

		public const string PCatwalkTile2x1 = "CatwalkTile2x1";

		public const string PCatwalkTile2x1Split = "CatwalkTile2x1Split";

		public const string PCementDarkDoorBlocker = "CementDarkDoorBlocker";

		public const string PCentipede = "Centipede";

		public const string PChallengeLeaderboardSlotItem = "ChallengeLeaderboardSlotItem";

		public const string PChangableSuit = "ChangableSuit";

		public const string PChemicalJug = "ChemicalJug";

		public const string PClipboardManual = "ClipboardManual";

		public const string PCloverTile = "CloverTile";

		public const string PCloverTileLampSpawn = "CloverTileLampSpawn";

		public const string PCloverTileLampSpawnBVariant = "CloverTileLampSpawnB Variant";

		public const string PCloverTileLampSpawnCVariant = "CloverTileLampSpawnC Variant";

		public const string PCloverTileShelfSpawn = "CloverTileShelfSpawn";

		public const string PCloverTileShelfSpawnBVariant = "CloverTileShelfSpawnB Variant";

		public const string PCloverTileShelfSpawnDVariant = "CloverTileShelfSpawnD Variant";

		public const string PClownhorn = "Clownhorn";

		public const string PCog = "Cog";

		public const string PComedyMask = "ComedyMask";

		public const string PCookieMoldPan = "CookieMoldPan";

		public const string PCrawler = "Crawler";

		public const string PDefaultHDAdditionalLightData = "Default HDAdditionalLightData";

		public const string PDefaultVolume = "Default Volume";

		public const string PDentures = "Dentures";

		public const string PDiagonal1Tile = "Diagonal1Tile";

		public const string PDiscoBallContainer = "DiscoBallContainer";

		public const string PDiyFlashbang = "DiyFlashbang";

		public const string PDocileLocustBees = "DocileLocustBees";

		public const string PDoorCodeUIObject = "DoorCodeUIObject";

		public const string PDoubleDoorRoom = "DoubleDoorRoom";

		public const string PDoublewingedBird = "DoublewingedBird";

		public const string PDressGirl = "DressGirl";

		public const string PDustpan = "Dustpan";

		public const string PEasterEgg = "EasterEgg";

		public const string PEasterEggExplosionParticle = "EasterEggExplosionParticle";

		public const string PEggBeater = "EggBeater";

		public const string PElevatorConnector = "ElevatorConnector";

		public const string PEnginePart = "EnginePart";

		public const string PEntranceTeleportA = "EntranceTeleportA";

		public const string PEntranceTeleportB = "EntranceTeleportB";

		public const string PExplosionEffect = "ExplosionEffect";

		public const string PExtensionLadderItem = "ExtensionLadderItem";

		public const string PFancyDoorBlockerMedHallway2 = "FancyDoorBlockerMedHallway2";

		public const string PFancyDoorFrameMapSpawn = "FancyDoorFrameMapSpawn";

		public const string PFancyDoorMapModel = "FancyDoorMapModel";

		public const string PFancyDoorMapSpawn = "FancyDoorMapSpawn";

		public const string PFancyGlass = "FancyGlass";

		public const string PFancyLamp = "FancyLamp";

		public const string PFancyRing = "FancyRing";

		public const string PFancyWall2PillarDoorBlocker = "FancyWall2PillarDoorBlocker";

		public const string PFancyWall3PillarDoorBlockerVariant = "FancyWall3PillarDoorBlocker Variant";

		public const string PFancyWall4DoorBlocker = "FancyWall4DoorBlocker";

		public const string PFishBowlContainer = "FishBowlContainer";

		public const string PFishTestProp = "FishTestProp";

		public const string PFlashBangParticle = "FlashBangParticle";

		public const string PFlashlightItem = "FlashlightItem";

		public const string PFlask = "Flask";

		public const string PFlowerman = "Flowerman";

		public const string PFlowerSnakeEnemy = "FlowerSnakeEnemy";

		public const string PFootprintDecal = "FootprintDecal";

		public const string PForestGiant = "ForestGiant";

		public const string PGiantPumpkin = "GiantPumpkin";

		public const string PGiftBox = "GiftBox";

		public const string PGoldBar = "GoldBar";

		public const string PGreyRockGrouping2 = "GreyRockGrouping2";

		public const string PGreyRockGrouping4 = "GreyRockGrouping4";

		public const string PHairbrush = "Hairbrush";

		public const string PHairdryer = "Hairdryer";

		public const string PHallwayBlocker = "HallwayBlocker";

		public const string PHallwayBlockerNoOffset = "HallwayBlockerNoOffset";

		public const string PHallwayBlockerNoOffsetCementDark = "HallwayBlockerNoOffsetCementDark";

		public const string PHallwayCloverIntersection = "HallwayCloverIntersection";

		public const string PHallwayCloverInverse = "HallwayCloverInverse";

		public const string PHallwayCorner = "HallwayCorner";

		public const string PHallwayTileTypeA = "HallwayTileTypeA";

		public const string PHallwayTileTypeB = "HallwayTileTypeB";

		public const string PHallwayTileTypeC = "HallwayTileTypeC";

		public const string PHallwayTileTypeD = "HallwayTileTypeD";

		public const string PHallwayWideOpeningConnector = "HallwayWideOpeningConnector";

		public const string PHandBell = "HandBell";

		public const string PHeadMask = "HeadMask";

		public const string PHoarderBug = "HoarderBug";

		public const string PInternalIdentityTransform = "InternalIdentityTransform";

		public const string PInverseTeleporter = "InverseTeleporter";

		public const string PJesterEnemy = "JesterEnemy";

		public const string PJetpackItem = "JetpackItem";

		public const string PKey = "Key";

		public const string PKeybindsSectionText = "KeybindsSectionText";

		public const string PKitchenTile = "KitchenTile";

		public const string PKnifeItem = "KnifeItem";

		public const string PLandmine = "Landmine";

		public const string PLargeExplosionDecal = "LargeExplosionDecal";

		public const string PLargeExplosionEffect = "LargeExplosionEffect";

		public const string PLargeForkTileB = "LargeForkTileB";

		public const string PLargeHallwayOpeningTile = "LargeHallwayOpeningTile";

		public const string PLargeRock1 = "LargeRock1";

		public const string PLargeRock2 = "LargeRock2";

		public const string PLargeRock3 = "LargeRock3";

		public const string PLargeRock4 = "LargeRock4";

		public const string PLaserPointer = "LaserPointer";

		public const string PLassoMan = "LassoMan";

		public const string PLevel2StartRoomConnector = "Level2StartRoomConnector";

		public const string PLibraryTile = "LibraryTile";

		public const string PLivingRoomTile = "LivingRoomTile";

		public const string PLobbyListItem = "LobbyListItem";

		public const string PLobbyListItemChallenge = "LobbyListItemChallenge";

		public const string PLockPickerItem = "LockPickerItem";

		public const string PLRADAudio = "LRADAudio";

		public const string PLRADAudio2 = "LRADAudio2";

		public const string PLungApparatus = "LungApparatus";

		public const string PLungApparatusTurnedOff = "LungApparatusTurnedOff";

		public const string PMagic7Ball = "Magic7Ball";

		public const string PMagnifyingGlass = "MagnifyingGlass";

		public const string PManorStairTile = "ManorStairTile";

		public const string PManorStartRoom = "ManorStartRoom";

		public const string PMappingDevice = "MappingDevice";

		public const string PMarbleWallDoorBlocker = "MarbleWallDoorBlocker";

		public const string PMaskedPlayerEnemy = "MaskedPlayerEnemy";

		public const string PMediumRoomHallway1B = "MediumRoomHallway1B";

		public const string PMetalSheet = "MetalSheet";

		public const string PMetalWallDoorBlocker = "MetalWallDoorBlocker";

		public const string PMissileProjectile = "MissileProjectile";

		public const string PMoon1 = "Moon1";

		public const string PMoon2 = "Moon2";

		public const string PMoon3 = "Moon3";

		public const string PMouthDog = "MouthDog";

		public const string PMug = "Mug";

		public const string PNormalDoor = "NormalDoor";

		public const string PNormalDoorBlocker = "NormalDoorBlocker";

		public const string PNormalDoorBlockerBigTex = "NormalDoorBlockerBigTex";

		public const string PNormalDoorBlockerWhiteCement = "NormalDoorBlockerWhiteCement";

		public const string PNormalDoorBlockerWhiteCementNoExitDoor = "NormalDoorBlockerWhiteCementNoExitDoor";

		public const string PNormalDoorBlockerWhiteWallpaper = "NormalDoorBlockerWhiteWallpaper";

		public const string PNormalTableContainer = "NormalTableContainer";

		public const string PNutcrackerEnemy = "NutcrackerEnemy";

		public const string POfficeDoor = "OfficeDoor";

		public const string POldPhone = "OldPhone";

		public const string PPainting = "Painting";

		public const string PPatcherGunItem = "PatcherGunItem";

		public const string PPerfumeBottle = "PerfumeBottle";

		public const string PPickleJar = "PickleJar";

		public const string PPillBottle = "PillBottle";

		public const string PPlaybackPrefab = "PlaybackPrefab";

		public const string PPlayer = "Player";

		public const string PPlayerRagdoll = "PlayerRagdoll";

		public const string PPlayerRagdollBurntVariant = "PlayerRagdollBurnt Variant";

		public const string PPlayerRagdollElectrocutedVariant = "PlayerRagdollElectrocuted Variant";

		public const string PPlayerRagdollHeadBurstVariant = "PlayerRagdollHeadBurst Variant";

		public const string PPlayerRagdollSpringVariant = "PlayerRagdollSpring Variant";

		public const string PPlayerRagdollWithComedyMaskVariant = "PlayerRagdollWithComedyMask Variant";

		public const string PPlayerRagdollWithTragedyMaskVariant = "PlayerRagdollWithTragedyMask Variant";

		public const string PPlayerSpectateBox = "PlayerSpectateBox";

		public const string PPlushiePJManContainer = "PlushiePJManContainer";

		public const string PPufferEnemy = "PufferEnemy";

		public const string PPufferEnemySmokeContainer = "PufferEnemySmokeContainer";

		public const string PPumpkinUnlockableContainer = "PumpkinUnlockableContainer";

		public const string PQuicksandContainer = "QuicksandContainer";

		public const string PRadarBoosterDevice = "RadarBoosterDevice";

		public const string PRadMechEnemy = "RadMechEnemy";

		public const string PRadMechNestSpawnObject = "RadMechNestSpawnObject";

		public const string PRagdollGrabbableObject = "RagdollGrabbableObject";

		public const string PRecordPlayerContainer = "RecordPlayerContainer";

		public const string PRedLocustBees = "RedLocustBees";

		public const string PRedLocustHive = "RedLocustHive";

		public const string PRedSodaCan = "RedSodaCan";

		public const string PRemapKeySlot = "RemapKeySlot";

		public const string PRemote = "Remote";

		public const string PRobotToy = "RobotToy";

		public const string PRomanticTableContainer = "RomanticTableContainer";

		public const string PRubberDucky = "RubberDucky";

		public const string PSandSpider = "SandSpider";

		public const string PSandWorm = "SandWorm";

		public const string PScrapIconMap = "ScrapIconMap";

		public const string PShipCozyLights = "ShipCozyLights";

		public const string PShipHorn = "ShipHorn";

		public const string PShotgunItem = "ShotgunItem";

		public const string PShotgunShell = "ShotgunShell";

		public const string PShovelItem = "ShovelItem";

		public const string PShower = "Shower";

		public const string PSignalTranslator = "SignalTranslator";

		public const string PSmallLRoom = "SmallLRoom";

		public const string PSmallPillarRoom = "SmallPillarRoom";

		public const string PSmallRoom2 = "SmallRoom2";

		public const string PSmallStairTile = "SmallStairTile";

		public const string PSpatializedPlaybackPrefabModified = "SpatializedPlaybackPrefabModified";

		public const string PSpikeRoofTrapHazard = "SpikeRoofTrapHazard";

		public const string PSpikeSlamBodyStickyPoint = "SpikeSlamBodyStickyPoint";

		public const string PSprayDecal = "SprayDecal";

		public const string PSprayPaintItem = "SprayPaintItem";

		public const string PSpringMan = "SpringMan";

		public const string PStartRoom = "StartRoom";

		public const string PSteamValve = "SteamValve";

		public const string PSteelDoor = "SteelDoor";

		public const string PSteelDoorFrameMapSpawn = "SteelDoorFrameMapSpawn";

		public const string PSteelDoorMapModel = "SteelDoorMapModel";

		public const string PSteelDoorMapSpawn = "SteelDoorMapSpawn";

		public const string PSteeringWheel = "SteeringWheel";

		public const string PStickyNoteItem = "StickyNoteItem";

		public const string PStopSign = "StopSign";

		public const string PStorageShelfContainer = "StorageShelfContainer";

		public const string PStretchyWeb = "StretchyWeb";

		public const string PStunGrenade = "StunGrenade";

		public const string PTeaKettle = "TeaKettle";

		public const string PTeleporter = "Teleporter";

		public const string PTelevisionContainer = "TelevisionContainer";

		public const string PTestAnomaly = "TestAnomaly";

		public const string PTestCapsuleEnemy = "TestCapsuleEnemy";

		public const string PTestRoom = "TestRoom";

		public const string PTHallwayIntersectionB = "THallwayIntersectionB";

		public const string PToilet = "Toilet";

		public const string PToothpaste = "Toothpaste";

		public const string PToyCube = "ToyCube";

		public const string PTragedyMask = "TragedyMask";

		public const string PTree = "tree";

		public const string PTreeLeafless002LOD0 = "treeLeafless.002_LOD0";

		public const string PTreeLeafless003LOD0 = "treeLeafless.003_LOD0";

		public const string PTreeLeaflessBrown001Variant = "treeLeaflessBrown.001 Variant";

		public const string PTurretContainer = "TurretContainer";

		public const string PTZPChemical = "TZPChemical";

		public const string PVentEntrance = "VentEntrance";

		public const string PWalkieTalkie = "WalkieTalkie";

		public const string PWebHangerPhysics = "WebHangerPhysics";

		public const string PWelcomeMatContainer = "WelcomeMatContainer";

		public const string PWhoopieCushion = "WhoopieCushion";

		public const string PWideHallwayOpeningBlocker1 = "WideHallwayOpeningBlocker (1)";

		public const string PWideHallwayOpeningBlocker3 = "WideHallwayOpeningBlocker3";

		public const string PWideHallwayOpeningBlockerB = "WideHallwayOpeningBlockerB";

		public const string PWideHallwayOpeningBlockerBOffset2cVariant = "WideHallwayOpeningBlockerBOffset2c Variant";

		public const string PWideHallwayOpeningBlockerCVariant = "WideHallwayOpeningBlockerC Variant";

		public const string PWideHallwayOpeningBlockerGreenPillarsVariant = "WideHallwayOpeningBlockerGreenPillars Variant";

		public const string PWindowTile = "WindowTile";

		public const string PWoodPikesContainer = "WoodPikesContainer";

		public const string PYieldSign = "YieldSign";
	}
}
namespace LethalMDK.World
{
	public static class ScanNodes
	{
		public enum EType
		{
			Utility,
			Creature,
			Scrap
		}
	}
}
namespace LethalMDK.Network
{
	public static class NetworkPrefabs
	{
		public static GameObject GetEmptyPrefab(string name)
		{
			GameObject emptyPrefab = PrefabUtils.GetEmptyPrefab(name);
			NetworkObject obj = emptyPrefab.AddComponent<NetworkObject>();
			byte[] value = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(Assembly.GetCallingAssembly().GetName().Name + name));
			ReflectionUtility.SetField<uint>((object)obj, "GlobalObjectIdHash", BitConverter.ToUInt32(value, 0));
			RegisterNetworkPrefab(emptyPrefab);
			return emptyPrefab;
		}

		public static void RegisterNetworkPrefab(GameObject prefab)
		{
			if (!Object.op_Implicit((Object)(object)NetworkManager.Singleton))
			{
				Log.Error((object)"Network manager isn't ready");
			}
			else
			{
				NetworkManager.Singleton.AddNetworkPrefab(prefab);
			}
		}
	}
}