public static void Init() { if (Loaded) { return; } Loaded = true; var execAssembly = Assembly.GetExecutingAssembly(); using (var stream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.hailstorm.assets")) { var bundle = AssetBundle.LoadFromStream(stream); var provider = new AssetBundleResourcesProvider(Prefix.TrimEnd(':'), bundle); ResourcesAPI.AddProvider(provider); DarknessShader = bundle.LoadAsset <Shader>("Assets/Effects/darkness.shader"); PureBlack = bundle.LoadAsset <Material>("Assets/Materials/PureBlack.mat"); PurpleCracks = bundle.LoadAsset <Material>("Assets/Materials/PurpleCracks.mat"); TwisterVisualPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/TwisterVisual.prefab"); TwisterPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/Twister.prefab"); TwisterProjectileController.AugumentPrefab(TwisterPrefab); BarrierMaterial = Resources.Load <GameObject>("Prefabs/TemporaryVisualEffects/barriereffect") .GetComponentInChildren <MeshRenderer>().material; CataclysmPlatformPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmPlatform.prefab"); CataclysmPlatformPrefab.AddComponent <MobilePlatform>(); CataclysmSkyboxMaterial = bundle.LoadAsset <Material>("Assets/SpaceSkies Free/Skybox_3/Purple_4K_Resolution.mat"); CataclysmArenaPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/CataclysmArena.prefab"); GravBombPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/GravBomb.prefab"); GravBombEffect.AugmentPrefab(GravBombPrefab); AsteroidProjectilePrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/AsteroidProjectile.prefab"); AsteroidProjectileController.AugmentPrefab(AsteroidProjectilePrefab); LaserChargerPrefab = bundle.LoadAsset <GameObject>("Assets/Prefabs/LaserCharger.prefab"); LaserChargerInteraction.AugmentPrefab(LaserChargerPrefab); } using (var bankStream = execAssembly.GetManifestResourceStream("JarlykMods.Hailstorm.Hailstorm.bnk")) { var bytes = new byte[bankStream.Length]; bankStream.Read(bytes, 0, bytes.Length); SoundBanks.Add(bytes); } On.RoR2.Networking.GameNetworkManager.OnStartClient += GameNetworkManager_OnStartClient; }
private static void GravBomb(ConCommandArgs args) { var user = LocalUserManager.GetFirstLocalUser(); var body = user.cachedBody; if (body?.master == null) { Debug.LogError("Cannot find local user body!"); return; } GravBombEffect.Spawn(body.corePosition + 5f * Vector3.up, 6); }