Example #1
0
        static AssetsCore()
        {
            AssetsCore.canLoadAsset = typeof(AssetsCore).GetMethod("CanLoadAsset", BindingFlags.Static | BindingFlags.Public);
            AssetLibrary <GameObject> .SetIndexType(typeof(PrefabIndex));

            AssetLibrary <Mesh> .SetIndexType(typeof(MeshIndex));

            AssetLibrary <Material> .SetIndexType(typeof(MaterialIndex));

            AssetLibrary <Shader> .SetIndexType(typeof(ShaderIndex));

            AssetLibrary <Texture2D> .SetIndexType(typeof(Texture2DIndex));

            AssetsCore.loaded = PrefabInitializer.Initialize();
            if (AssetsCore.loaded)
            {
                AssetsCore.loaded &= MeshInitializer.Initialize();
            }
            else
            {
                Log.Error(String.Format("{0} failed to load", "PrefabInitializer"));
            }
            if (AssetsCore.loaded)
            {
                AssetsCore.loaded &= MaterialInitializer.Initialize();
            }
            else
            {
                Log.Error(String.Format("{0} failed to load", "MeshInitializer"));
            }
            if (AssetsCore.loaded)
            {
                AssetsCore.loaded &= ShaderInitializer.Initialize();
            }
            else
            {
                Log.Error(String.Format("{0} failed to load", "MaterialInitializer"));
            }
            if (AssetsCore.loaded)
            {
                AssetsCore.loaded &= TextureInitializer.Initialize();
            }
            else
            {
                Log.Error(String.Format("{0} failed to load", "ShaderInitializer"));
            }
            if (!AssetsCore.loaded)
            {
                Log.Error(String.Format("{0} failed to load", "TextureInitializer"));
            }

            //Log.Warning( "AssetsCore loaded" );
        }
Example #2
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public static Boolean CanLoadAsset <TAsset>(Enum index) where TAsset : UnityEngine.Object
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        {
            if (!AssetsCore.loaded)
            {
                throw new CoreNotLoadedException(nameof(AssetsCore));
            }
            if (!AssetsCore.MatchAssetIndexType(typeof(TAsset), index.GetType()))
            {
                throw new ArgumentException("Incorrect index type", "index");
            }
            return(AssetLibrary <TAsset> .CanGetAsset(index));
        }
Example #3
0
        public static TAsset LoadAsset <TAsset>(Enum index) where TAsset : UnityEngine.Object
        {
            //var timer = new Stopwatch();
            //timer.Start();

            if (!AssetsCore.loaded)
            {
                throw new CoreNotLoadedException(nameof(AssetsCore));
            }
            if (!AssetsCore.MatchAssetIndexType(typeof(TAsset), index.GetType()))
            {
                throw new ArgumentException("Incorrect index type", nameof(index));
            }

            TAsset asset = AssetLibrary <TAsset> .GetAsset(index);

            //timer.Stop();
            //Log.Warning( String.Format( "Time for asset {0}: {1} ticks, {2} ms", index.GetName(), timer.ElapsedTicks, timer.ElapsedMilliseconds ) );
            return(asset);
        }
Example #4
0
        static TextureInitializer()
        {
            new AssetAccessor <Texture2D>(Texture2DIndex.None, () => null).RegisterAccessor();

            #region Reference Textures
            #region Cloud Textures
            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudDifferenceBW1, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOnHelfire)), MaterialIndex.refMatOnHelfire).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudDifferenceBW2, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullBombAreaIndicator)), MaterialIndex.refMatNullBombAreaIndicator).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudIce, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatFireRingRunes)), MaterialIndex.refMatFireRingRunes).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudCrackedIce, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatBazaarIceCore)), MaterialIndex.refMatBazaarIceCore).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudOrganic1, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatElitePoisonParticleSystemReplacement)), MaterialIndex.refMatElitePoisonParticleSystemReplacement).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudOrganic2, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatVagrantEnergized)), MaterialIndex.refMatVagrantEnergized).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudPixel2, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatTPInOut)), MaterialIndex.refMatTPInOut).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudLightning1, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatVagrantEnergized)), MaterialIndex.refMatVagrantEnergized).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexMagmaCloud, () => GetCloud2Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierExplosionAreaIndicatorHard)), MaterialIndex.refMatNullifierExplosionAreaIndicatorHard).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudColor1, () => GetCloud2Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullBombAreaIndicator)), MaterialIndex.refMatNullBombAreaIndicator).RegisterAccessor();


            #endregion
            #region Mask Textures
            new AssetAccessor <Texture2D>(Texture2DIndex.refTexBasicMask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatElitePoisonParticleSystemReplacement)), MaterialIndex.refMatElitePoisonParticleSystemReplacement).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexBehemothTileMask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierStarTrail)), MaterialIndex.refMatNullifierStarTrail).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGalaxy1Mask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierStarParticle)), MaterialIndex.refMatNullifierStarParticle).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexParticleDust1Mask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatTracerBright)), MaterialIndex.refMatTracerBright).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexParticleDust2Mask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatGenericFlash)), MaterialIndex.refMatGenericFlash).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexLightning2Mask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierStarPortalEdge)), MaterialIndex.refMatNullifierStarPortalEdge).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGenericStarburstMaskSkewed, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatWillowispRadial)), MaterialIndex.refMatWillowispRadial).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGlowSoftCenterMask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatDustDirectionalDark)), MaterialIndex.refMatDustDirectionalDark).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexRingSetRuneMask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatFireRingRunes)), MaterialIndex.refMatFireRingRunes).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexBanditExplosionMask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatGolemExplosion)), MaterialIndex.refMatGolemExplosion).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexArcaneCircle1Mask, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatArcaneCircle1)), MaterialIndex.refMatArcaneCircle1).RegisterAccessor();


            #endregion
            #region Assorted Textures
            new AssetAccessor <Texture2D>(Texture2DIndex.refTexAlphaGradient2, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatShatteredGlass)), MaterialIndex.refMatShatteredGlass).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexEngiShield, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMercEnergized)), MaterialIndex.refMatMercEnergized).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexEngiShieldBlurred, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMercEnergized)), MaterialIndex.refMatMercEnergized).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexDebris1, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatDebris1)), MaterialIndex.refMatDebris1).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSPeckledDisplacement, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustSpeckledLarge)), MaterialIndex.refMatOpagueDustSpeckledLarge).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexNullifierSky, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierExplosionAreaIndicatorSoft)), MaterialIndex.refMatNullifierExplosionAreaIndicatorSoft).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexNullifierSky2, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierGemPortal)), MaterialIndex.refMatNullifierGemPortal).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexWillowispSpiral, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatWillowispSpiral)), MaterialIndex.refMatWillowispSpiral).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refCaustics, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierExplosionAreaIndicatorHard)), MaterialIndex.refMatNullifierExplosionAreaIndicatorHard).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refDistTex, () => GetMainTex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatTracer)), MaterialIndex.refMatTracer).RegisterAccessor();



            #endregion
            #region Normal Textures
            new AssetAccessor <Texture2D>(Texture2DIndex.refWaves_N, () => GetBumpMap(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatBazaarIceDistortion)), MaterialIndex.refMatBazaarIceDistortion).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexNormalSphere, () => GetBumpMap(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatDistortion)), MaterialIndex.refMatDistortion).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexNormalSphereFaded, () => GetBumpMap(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatDistortionFaded)), MaterialIndex.refMatDistortionFaded).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudOrganicNormal, () => GetCloud1Tex(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatNullifierStarPortalEdge)), MaterialIndex.refMatNullifierStarPortalEdge).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSpeckledNormal, () => GetNormalMap(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustSpeckledLarge)), MaterialIndex.refMatOpagueDustSpeckledLarge).RegisterAccessor();



            new AssetAccessor <Texture2D>(Texture2DIndex.refTexNormalInvertConeFade, () => GetBumpMap(AssetLibrary <Material> .GetAsset(MaterialIndex.refMatInverseDistortion)), MaterialIndex.refMatInverseDistortion).RegisterAccessor();
            #endregion

            #region Unsorted
            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFeatherMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatAngelFeather);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatAngelFeather).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGlowSquareMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatStealthkitSparks);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatStealthkitSparks).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexShard03Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatRoboBallParticleRingHuge);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatRoboBallParticleRingHuge).RegisterAccessor();

            ////////////////////////////////////////////////////////////////////////////////////////////////
            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFireMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatFireStaticLarge);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatFireStaticLarge).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniShockwave2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniRing2Generic);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniRing2Generic).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexMercSwipeMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMercSwipe2);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatMercSwipe2).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexChainTrailMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatSuspendedInTime);
                //return GetMainTex( m );
                return(GetCloud1Tex(m));
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatSuspendedInTime).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexVagrantTentacleMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatTPShockwave);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatTPShockwave).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexBehemothTileNormal, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustTrail);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                return(GetNormalMap(m));
            }, MaterialIndex.refMatOpagueDustTrail).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexLemurianSlash, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatLizardBiteTrail);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatLizardBiteTrail).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexAngelWingMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatAngelEffect);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatAngelEffect).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexVFXExplosionMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatCutExplosion);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatCutExplosion).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexShockwaveRing2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueWaterFoam);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOpagueWaterFoam).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexItemPickupEffectParticleMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatBootWaveEnergy);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatBootWaveEnergy).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexEngiTrail, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatEngiTrail);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatEngiTrail).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGlowPaintMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatGenericFire);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatGenericFire).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexAlphaGradient3Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatTeleportOut);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatTeleportOut).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexAlphaGradient2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatDustSoft);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatDustSoft).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexHealingCrossMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatHealingCross);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatHealingCross).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFluidSpraySmall, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatJellyfishChunks);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatJellyfishChunks).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexImpSwipeMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatImpSwipe);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatImpSwipe).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudWaterRipples, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatImpBossPortal);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatImpBossPortal).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudSkulls, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatHauntedAura);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                return(GetCloud2Tex(m));
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatHauntedAura).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexGlowSkullMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatSkullFire);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatSkullFire).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFluffyCloud2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatSonicBoomGroundDust);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatSonicBoomGroundDust).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFluffyCloud3Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatSonicBoomGroundDust);
                //return GetMainTex( m );
                return(GetCloud1Tex(m));
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatSonicBoomGroundDust).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexMageMatrixMaskDirectional, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMageMatrixDirectionalLightning);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatMageMatrixDirectionalLightning).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexMageMatrixMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMageMatrixLightning);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatMageMatrixLightning).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexMageMatrixTri, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatMatrixTriFire);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatMatrixTriFire).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexShockwaveMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatCleanseCore);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatCleanseCore).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexBlackHoleMask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatCleanseCore);
                //return GetMainTex( m );
                return(GetCloud1Tex(m));
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatCleanseCore).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexCloudOrganic3, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatCleanseWater);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                return(GetCloud2Tex(m));
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatCleanseWater).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexAlphaGradient4Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatLaserTurbineTargetingLaser);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatLaserTurbineTargetingLaser).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniRadialSlash1Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniRadialSlash1Merc);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniRadialSlash1Merc).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniHitspark2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniHitspark2Merc);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniHitspark2Merc).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniHitspark1Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniHitspark1);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniHitspark1).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSmallDirectionalDisplacement, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDust);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOpagueDust).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSmallDirectionalNormal, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDust);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                return(GetNormalMap(m));
            }, MaterialIndex.refMatOpagueDust).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniShockwave1Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniRing1Generic);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniRing1Generic).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniHitspark4Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniHitspark4Merc);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniHitspark4Merc).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexFluidSprayLarge, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatBloodClayLarge);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatBloodClayLarge).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexWhiteRadialGradient256, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatClayGooFizzle);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatClayGooFizzle).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexParticleDust3Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatClayBubbleBillboard);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatClayBubbleBillboard).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffDirectionalDisplacement, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustLargeDirectional);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOpagueDustLargeDirectional).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffDirectionalNormal, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustLargeDirectional);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                return(GetNormalMap(m));
            }, MaterialIndex.refMatOpagueDustLargeDirectional).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSmallDisplacement, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustLarge);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOpagueDustLarge).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexSmokePuffSmallNormal, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOpagueDustLarge);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                return(GetNormalMap(m));
            }, MaterialIndex.refMatOpagueDustLarge).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexLightning3Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatGenericLaser);
                //return GetMainTex( m );
                return(GetCloud1Tex(m));
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatGenericLaser).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexShard02Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatEngiShieldShards);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatEngiShieldShards).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexOmniExplosion2Mask, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatOmniExplosion1);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatOmniExplosion1).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexRoboChunksDiffuse, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatRoboChunks);
                return(GetMainTex(m));
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                //return GetNormalMap( m );
            }, MaterialIndex.refMatRoboChunks).RegisterAccessor();


            new AssetAccessor <Texture2D>(Texture2DIndex.refTexRoboChunksNormal, () =>
            {
                Material m = AssetLibrary <Material> .GetAsset(MaterialIndex.refMatRoboChunks);
                //return GetMainTex( m );
                //return GetCloud1Tex( m );
                //return GetCloud2Tex( m );
                //return GetBumpMap( m );
                return(GetNormalMap(m));
            }, MaterialIndex.refMatRoboChunks).RegisterAccessor();

            #endregion
            #endregion

            completedProperly = true;
        }
Example #5
0
        static MaterialInitializer()
        {
            #region Reference Materials
            #region Resources
            new AssetAccessor <Material>(MaterialIndex.refMatOnHelfire, () => Resources.Load <Material>("Materials/MatOnHelfire")).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatShatteredGlass, () => Resources.Load <Material>("Materials/MatShatteredGlass")).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatTPInOut, () => Resources.Load <Material>("Materials/MatTPInOut")).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatVagrantEnergized, () => Resources.Load <Material>("Materials/MatVagrantEnergized")).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatElitePoisonParticleSystemReplacement, () => Resources.Load <Material>("Materials/MatElitePoisonParticleReplacement")).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatMercEnergized, () => Resources.Load <Material>("Materials/MatMercEnergized")).RegisterAccessor();
            #endregion

            #region NullifierDeathExplosion
            new AssetAccessor <Material>(MaterialIndex.refMatTracerBright, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Vacuum Stars, Trails").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatDebris1, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Dirt").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatInverseDistortion, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Vacuum Stars, Distortion").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatOpagueDustSpeckledLarge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Goo, Medium").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierStarParticle, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Vacuum Stars").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierStarTrail, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Vacuum Stars, Trails").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[1]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierStarPortalEdge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Vacuum Radial").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierExplosionAreaIndicatorSoft, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("AreaIndicator").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierExplosionAreaIndicatorHard, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("AreaIndicator (1)").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();


            new AssetAccessor <Material>(MaterialIndex.refMatNullifierGemPortal, () =>
            {
                Transform trans   = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierDeathExplosion).transform;
                MeshRenderer rend = trans.Find("Sphere").GetComponent <MeshRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierDeathExplosion).RegisterAccessor();
            #endregion

            #region Nullifier Pre-Bomb Ghost
            new AssetAccessor <Material>(MaterialIndex.refMatNullBombAreaIndicator, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refNullifierPreBombGhost).transform;
                ParticleSystemRenderer rend = null;
                Boolean pastFirst           = true;
                for (Int32 i = 0; i < trans.childCount; ++i)
                {
                    Transform child = trans.GetChild(i);
                    if (child.name == "AreaIndicator")
                    {
                        if (pastFirst)
                        {
                            rend = child.GetComponent <ParticleSystemRenderer>();
                            break;
                        }
                        else
                        {
                            pastFirst = true;
                        }
                    }
                }
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refNullifierPreBombGhost).RegisterAccessor();
            #endregion

            #region Will-O-Wisp Explosion
            new AssetAccessor <Material>(MaterialIndex.refMatTracer, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWillOWispExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Sparks").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refWillOWispExplosion).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatDistortionFaded, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWillOWispExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Distortion").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refWillOWispExplosion).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatWillowispSpiral, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWillOWispExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Flames, Tube").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refWillOWispExplosion).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatWillowispRadial, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWillOWispExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Flames, Radial").GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refWillOWispExplosion).RegisterAccessor();
            #endregion

            #region Locked Mage
            new AssetAccessor <Material>(MaterialIndex.refMatBazaarIceCore, () =>
            {
                Transform trans   = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLockedMage).transform.Find("ModelBase/IceMesh");
                MeshRenderer rend = trans.GetComponent <MeshRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLockedMage).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatBazaarIceDistortion, () =>
            {
                Transform trans   = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLockedMage).transform.Find("ModelBase/IceMesh");
                MeshRenderer rend = trans.GetComponent <MeshRenderer>();
                return(rend.sharedMaterials[1]);
            }, PrefabIndex.refLockedMage).RegisterAccessor();
            #endregion

            #region Fire Tornado Ghost
            new AssetAccessor <Material>(MaterialIndex.refMatGenericFlash, () =>
            {
                // NEXT: After asset rip, check that this is correct
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFireTornadoGhost).transform.Find("Embers");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFireTornadoGhost).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatDustDirectionalDark, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFireTornadoGhost).transform.Find("Smoke");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFireTornadoGhost).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatFireRingRunes, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFireTornadoGhost).transform.Find("InitialBurst/RuneRings");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFireTornadoGhost).RegisterAccessor();

            #endregion

            #region Titan Recharge Rocks Effect
            new AssetAccessor <Material>(MaterialIndex.refMatGolemExplosion, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTitanRechargeRocksEffect).transform.Find("3DDebris");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[1]);
            }, PrefabIndex.refTitanRechargeRocksEffect).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatTitanBeam, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTitanRechargeRocksEffect).transform.Find("Sparks, Trail");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTitanRechargeRocksEffect).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatArcaneCircle1, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTitanRechargeRocksEffect).transform.Find("Glow");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTitanRechargeRocksEffect).RegisterAccessor();
            new AssetAccessor <Material>(MaterialIndex.refMatDistortion, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTitanRechargeRocksEffect).transform.Find("Distortion");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTitanRechargeRocksEffect).RegisterAccessor();
            #endregion

            #region BoostJumpEffect
            new AssetAccessor <Material>(MaterialIndex.refMatAngelFeather, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refBoostJumpEffect).transform.Find("Feather, Directional");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refBoostJumpEffect).RegisterAccessor();
            #endregion

            #region ProcStealthKit
            new AssetAccessor <Material>(MaterialIndex.refMatStealthkitSparks, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refProcStealthkit).transform.Find("Sparks");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refProcStealthkit).RegisterAccessor();
            #endregion

            #region RoboBallBossDelayKnockupEffect
            new AssetAccessor <Material>(MaterialIndex.refMatRoboBallParticleRingHuge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refRoboBallBossDelayKnockupEffect).transform.Find("Sphere");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refRoboBallBossDelayKnockupEffect).RegisterAccessor();
            #endregion

            #region FirePillarEffect
            new AssetAccessor <Material>(MaterialIndex.refMatFireStaticLarge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFirePillarEffect).transform.Find("FX/Fire");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFirePillarEffect).RegisterAccessor();
            #endregion

            #region LightningStakeNova
            new AssetAccessor <Material>(MaterialIndex.refMatOmniRing2Generic, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLightningStakeNova).transform.Find("AreaIndicatorRing, Billboard");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLightningStakeNova).RegisterAccessor();
            #endregion

            #region MercSwordFinisherSlash
            new AssetAccessor <Material>(MaterialIndex.refMatMercSwipe2, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMercSwordFinisherSlash).transform.Find("SwingTrail");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refMercSwordFinisherSlash).RegisterAccessor();
            #endregion

            #region MageUnlockPreExplosion
            new AssetAccessor <Material>(MaterialIndex.refMatSuspendedInTime, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMageUnlockPreExplosion).transform.Find("Running Particles/Flames, Radial");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refMageUnlockPreExplosion).RegisterAccessor();
            #endregion

            #region TeleporterBeaconEffect
            new AssetAccessor <Material>(MaterialIndex.refMatTPShockwave, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTeleporterBeaconEffect).transform.Find("InitialBurst/Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTeleporterBeaconEffect).RegisterAccessor();
            #endregion

            #region SprintActivate
            new AssetAccessor <Material>(MaterialIndex.refMatOpagueDustTrail, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refSprintActivate).transform.Find("SwingTrail");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refSprintActivate).RegisterAccessor();
            #endregion

            #region LemurianBiteTrail
            new AssetAccessor <Material>(MaterialIndex.refMatLizardBiteTrail, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLemurianBiteTrail).transform.Find("SwingTrail");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLemurianBiteTrail).RegisterAccessor();
            #endregion

            #region HippoRezEffect
            new AssetAccessor <Material>(MaterialIndex.refMatAngelEffect, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refHippoRezEffect).transform.Find("Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refHippoRezEffect).RegisterAccessor();
            #endregion

            #region ExplosionDroneDeath
            new AssetAccessor <Material>(MaterialIndex.refMatCutExplosion, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refExplosionDroneDeath).transform.Find("Particles/InitialBurst/Flames");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refExplosionDroneDeath).RegisterAccessor();
            #endregion

            #region WaterFootstep
            new AssetAccessor <Material>(MaterialIndex.refMatOpagueWaterFoam, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWaterFootstep).transform.Find("FoamBilllboard");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refWaterFootstep).RegisterAccessor();
            #endregion

            #region BootIsReady
            new AssetAccessor <Material>(MaterialIndex.refMatBootWaveEnergy, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refBootIsReady).transform.Find("BlueRing");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refBootIsReady).RegisterAccessor();
            #endregion

            #region ExplosionEngiTurretDeath
            new AssetAccessor <Material>(MaterialIndex.refMatEngiTrail, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refExplosionEngiTurretDeath).transform.Find("InitialBurst/Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refExplosionEngiTurretDeath).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatGenericFire, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refExplosionEngiTurretDeath).transform.Find("InitialBurst/Flames");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refExplosionEngiTurretDeath).RegisterAccessor();
            #endregion

            #region TeleportOutBoom
            new AssetAccessor <Material>(MaterialIndex.refMatTeleportOut, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTeleportOutBoom).transform.Find("CenterPoof");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTeleportOutBoom).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatDustSoft, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refTeleportOutBoom).transform.Find("Dust");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refTeleportOutBoom).RegisterAccessor();
            #endregion

            #region FruitHealEffect
            new AssetAccessor <Material>(MaterialIndex.refMatHealingCross, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFruitHealEffect).transform.Find("Crosses");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFruitHealEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatJellyfishChunks, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFruitHealEffect).transform.Find("Goo Slash");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refFruitHealEffect).RegisterAccessor();
            #endregion

            #region ImpBossDeathEffect
            new AssetAccessor <Material>(MaterialIndex.refMatImpSwipe, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refImpBossDeathEffect).transform.Find("DashRings");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refImpBossDeathEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatImpBossPortal, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refImpBossDeathEffect).transform.Find("Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refImpBossDeathEffect).RegisterAccessor();
            #endregion

            #region PoisonNovaProc
            new AssetAccessor <Material>(MaterialIndex.refMatHauntedAura, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refPoisonNovaProc).transform.Find("Particles/Ring, Procced");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refPoisonNovaProc).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatSkullFire, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refPoisonNovaProc).transform.Find("Particles/Flames");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refPoisonNovaProc).RegisterAccessor();
            #endregion

            #region SonicBoomEffect
            new AssetAccessor <Material>(MaterialIndex.refMatSonicBoomGroundDust, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refSonicBoomEffect).transform.Find("DustColliders/Dust");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refSonicBoomEffect).RegisterAccessor();
            #endregion

            #region MageLightningBombExplosion
            new AssetAccessor <Material>(MaterialIndex.refMatMageMatrixDirectionalLightning, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMageLightningbombExplosion).transform.Find("Matrix, Directional");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refMageLightningbombExplosion).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatMageMatrixLightning, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMageLightningbombExplosion).transform.Find("Matrix, Billboard");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refMageLightningbombExplosion).RegisterAccessor();
            #endregion

            #region MageFlamethrowerEffect
            new AssetAccessor <Material>(MaterialIndex.refMatMatrixTriFire, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMageFlamethrowerEffect).transform.Find("IcoCharge");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refMageFlamethrowerEffect).RegisterAccessor();
            #endregion

            #region CleanseEffect
            new AssetAccessor <Material>(MaterialIndex.refMatCleanseCore, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refCleanseEffect).transform.Find("Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refCleanseEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatCleanseWater, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refCleanseEffect).transform.Find("Splash");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refCleanseEffect).RegisterAccessor();
            #endregion

            #region LaserTurbineBombExplosion
            new AssetAccessor <Material>(MaterialIndex.refMatLaserTurbineTargetingLaser, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLaserTurbineBombExplosion).transform.Find("Slashes");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLaserTurbineBombExplosion).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOmniRadialSlash1Merc, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLaserTurbineBombExplosion).transform.Find("BillboardSlashes");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLaserTurbineBombExplosion).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOmniHitspark2Merc, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLaserTurbineBombExplosion).transform.Find("SharpSlashes");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLaserTurbineBombExplosion).RegisterAccessor();
            #endregion

            #region GravekeeperMaskDeath
            new AssetAccessor <Material>(MaterialIndex.refMatOmniHitspark1, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refGravekeeperMaskDeath).transform.Find("OmniExplosionVFXArchWisp/ScaledHitsparks 1");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refGravekeeperMaskDeath).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOpagueDust, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refGravekeeperMaskDeath).transform.Find("OmniExplosionVFXArchWisp/ScaledSmoke, Billboard");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refGravekeeperMaskDeath).RegisterAccessor();
            #endregion

            #region LevelUpEffect
            new AssetAccessor <Material>(MaterialIndex.refMatOmniRing1Generic, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLevelUpEffect).transform.Find("Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLevelUpEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOmniHitspark4Merc, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refLevelUpEffect).transform.Find("BrightFlash, Lines");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refLevelUpEffect).RegisterAccessor();
            #endregion

            #region ClayBossMulcher
            new AssetAccessor <Material>(MaterialIndex.refMatBloodClayLarge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refClayBossMulcher).transform.Find("Goo");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refClayBossMulcher).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatClayGooFizzle, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refClayBossMulcher).transform.Find("Trail");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refClayBossMulcher).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatClayBubbleBillboard, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refClayBossMulcher).transform.Find("Bubbles, 2D");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refClayBossMulcher).RegisterAccessor();
            #endregion

            #region ElectricWormBurrow
            new AssetAccessor <Material>(MaterialIndex.refMatOpagueDustLargeDirectional, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refElectricWormBurrow).transform.Find("ParticleLoop/Dust, Directional");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refElectricWormBurrow).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOpagueDustLarge, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refElectricWormBurrow).transform.Find("ParticleLoop/Dust, Billboard");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refElectricWormBurrow).RegisterAccessor();
            #endregion

            #region AmmoPackPickupEffect
            new AssetAccessor <Material>(MaterialIndex.refMatGenericLaser, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refAmmoPackPickupEffect).transform.Find("Ring");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refAmmoPackPickupEffect).RegisterAccessor();
            #endregion

            #region BubbleShieldEndEffect
            new AssetAccessor <Material>(MaterialIndex.refMatEngiShieldShards, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refBubbleShieldEndEffect).transform.Find("Quads");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refBubbleShieldEndEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatOmniExplosion1, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refBubbleShieldEndEffect).transform.Find("OmniExplosionVFXEngiTurretDeath/Unscaled Flames");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refBubbleShieldEndEffect).RegisterAccessor();

            new AssetAccessor <Material>(MaterialIndex.refMatRoboChunks, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refBubbleShieldEndEffect).transform.Find("OmniExplosionVFXEngiTurretDeath/Chunks, Billboards");
                ParticleSystemRenderer rend = trans.GetComponent <ParticleSystemRenderer>();
                return(rend.sharedMaterials[0]);
            }, PrefabIndex.refBubbleShieldEndEffect).RegisterAccessor();
            #endregion



            #endregion



            completedProperly = true;
        }
Example #6
0
        static MeshInitializer()
        {
            #region Unity Primatives
            new AssetAccessor <Mesh>(MeshIndex.Sphere, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Capsule, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Cylinder, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Cube, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Cube);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Plane, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Plane);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Quad, () =>
            {
                var obj   = GameObject.CreatePrimitive(PrimitiveType.Quad);
                Mesh mesh = obj.GetComponent <MeshFilter>().mesh;
                UnityEngine.Object.Destroy(obj);
                return(mesh);
            }).RegisterAccessor();
            #endregion
            #region Hopoo Meshes
            new AssetAccessor <Mesh>(MeshIndex.Spiral1, () =>
            {
                Transform trans             = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refWillOWispExplosion).transform;
                ParticleSystemRenderer rend = trans.Find("Flames, Tube").GetComponent <ParticleSystemRenderer>();
                Int32 count = rend.meshCount;
                if (count > 1)
                {
                    var meshes = new Mesh[count];
                    _          = rend.GetMeshes(meshes);
                    return(meshes[0]);
                }
                return(rend.mesh);
            }, PrefabIndex.refWillOWispExplosion).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.TornadoMesh, () =>
            {
                Transform obj = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFireTornadoGhost).transform.Find("TornadoSmokeMesh");
                return(obj.GetComponent <ParticleSystemRenderer>().mesh);
            }, PrefabIndex.refFireTornadoGhost).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.TornadoMesh2, () =>
            {
                Transform obj = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refFireTornadoGhost).transform.Find("TornadoMesh");
                return(obj.GetComponent <ParticleSystemRenderer>().mesh);
            }, PrefabIndex.refFireTornadoGhost).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.MdlTriTip, () =>
            {
                MeshFilter obj = AssetLibrary <GameObject> .GetAsset(PrefabIndex.refPickupTriTip).transform.Find("mslTriTip").GetComponent <MeshFilter>();
                return(obj.sharedMesh);
            }, PrefabIndex.refPickupTriTip).RegisterAccessor();

            new AssetAccessor <Mesh>(MeshIndex.Donut2,
                                     () => AssetLibrary <GameObject> .GetAsset(PrefabIndex.refMercSwordSlashWhirlwind).transform.Find("SwingTrail").GetComponent <ParticleSystemRenderer>().mesh,
                                     PrefabIndex.refMercSwordSlashWhirlwind).RegisterAccessor();

            #endregion

            completedProperly = true;
        }
Example #7
0
 internal void RegisterAccessor() => AssetLibrary <TAsset> .AddAsset(this);