static IEnumerator initPrefab() { if (stasisSpherePrefab) { yield break; } if (alreadyInit || !(alreadyInit = true)) // to avoid simultaneous initialization { yield return(new WaitUntil(() => stasisSpherePrefab)); yield break; } #if GAME_BZ #pragma warning disable CS0612 // TechType.StasisRifle is obsolete in BZ #endif var task = PrefabUtils.getPrefabAsync(TechType.StasisRifle); #if GAME_BZ #pragma warning restore CS0612 #endif yield return(task); var stasisRiflePrefab = task.GetResult(); if (!stasisRiflePrefab) { "StasisExplosion.initPrefab: invalid prefab for StasisRifle!".logError(); yield break; } stasisSpherePrefab = PrefabUtils.storePrefabCopy(stasisRiflePrefab.GetComponent <StasisRifle>()?.effectSpherePrefab); }
IEnumerator init() { if (inited || !(inited = true)) { yield break; } AnimationHelper.init(); //cbeams[0] = new ConstructionBeam(builderTool.beamLeft, builderTool.nozzleLeft); //cbeams[1] = new ConstructionBeam(builderTool.beamRight, builderTool.nozzleRight); GameObject beamsRoot = gameObject.getChild("terraformer_anim/Terraformer_Export_Skele/root_jnt/body_jnt/head_jnt"); var task = PrefabUtils.getPrefabAsync(TechType.Builder); yield return(task); GameObject beamPrefab = task.GetResult().getChild("builder/builder_FP/Root/r_nozzle_root/r_nozzle/R_laser/beamRight"); cbeams[0] = new ConstructionBeam(beamsRoot, beamPrefab, "Left", new Vector3(-0.1813f, -0.007f, 0.06f)); cbeams[1] = new ConstructionBeam(beamsRoot, beamPrefab, "Right", new Vector3(0.1813f, -0.007f, 0.06f)); cbeams[2] = new ConstructionBeam(beamsRoot, beamPrefab, "Center1", new Vector3(0, -0.007f, 0.06f)); //cbeams[3] = new ConstructionBeam(beamsRoot, beamPrefab, "Center2", new Vector3(0, -0.007f, 0.06f)); setBeamsActive(false); }
static IEnumerator _deathEffect() // multiple ? { var task = PrefabUtils.getPrefabAsync(TechType.BlueCluster); yield return(task); deathEffect = task.GetResult().GetComponent <LiveMixin>().data.deathEffect; }
static IEnumerator _dumpPrefab(TechType techType) { var task = PrefabUtils.getPrefabAsync(techType); yield return(task); task.GetResult()?.dump(techType.AsString()); }