protected override void OnUpdate(SAMTime gameTime, InputState istate)
        {
#if DEBUG
            DebugDisp.IsEnabled = DebugSettings.Get("DebugTextDisplay");
            DebugDisp.Scale     = 0.75f;
#endif

#if (DEBUG && __DESKTOP__)
            if (istate.IsKeyExclusiveJustDown(SKeys.R))
            {
                var xcfg = XConfigFile.LoadFromString(System.IO.File.ReadAllText(@"F:\Symlinks\GridDominance\Data\presets\green_gas.xconf"));
                var pcfg = ParticleEmitterConfig.ParticleEmitterConfigBuilder.LoadFromXConfig(xcfg);
                _banner.CreateEntities(pcfg);
            }
#endif

#if !GD_SHADERLESS
            if (_effectsEnabledCache != MainGame.Inst.Profile.EffectsEnabled)
            {
                _effectsEnabledCache = MainGame.Inst.Profile.EffectsEnabled;

                if (MainGame.Inst.Profile.EffectsEnabled)
                {
                    _banner.CreateEntities(ParticlePresets.GetConfigLetterGreenGas());
                }
                else
                {
                    _banner.RemoveEntities();
                }
            }
#endif
        }
        public override void Update(SAMTime gameTime, InputState istate)
        {
            base.Update(gameTime, istate);

#if (DEBUG && __DESKTOP__)
            if (istate.IsKeyExclusiveJustDown(SKeys.R))
            {
                var xcfg = XConfigFile.LoadFromString(System.IO.File.ReadAllText(@"F:\Symlinks\GridDominance\Data\presets\generic.xconf"));
                var pcfg = ParticleEmitterConfig.ParticleEmitterConfigBuilder.LoadFromXConfig(xcfg);
                _emitter.Alive = false;


                var scrn = HUD.Screen;

                var path = VectorPathBuilder
                           .Start()
                           .MoveTo(scrn.TranslateHUDToGameCoordinates(-WIDTH / 2f, -HEIGHT / 2f))
                           .LineTo(scrn.TranslateHUDToGameCoordinates(-WIDTH / 2f, +HEIGHT / 2f))
                           .LineTo(scrn.TranslateHUDToGameCoordinates(+WIDTH / 2f, +HEIGHT / 2f))
                           .LineTo(scrn.TranslateHUDToGameCoordinates(+WIDTH / 2f, -HEIGHT / 2f))
                           .LineTo(scrn.TranslateHUDToGameCoordinates(-WIDTH / 2f, -HEIGHT / 2f))
                           .Build();

                var cfg = pcfg.Build(Textures.TexParticle, 2f, 3f);

                _emitter = new PathGPUParticleEmitter(scrn, scrn.MapViewportCenter, path, cfg, GDConstants.ORDER_WORLD_SUPEREFFECTS);

                HUD.Screen.Entities.AddEntity(_emitter);
            }
#endif
        }
Esempio n. 3
0
        protected override void OnUpdate(SAMTime gameTime, InputState istate)
        {
            _lifetime += gameTime.ElapsedSeconds;

#if DEBUG
            DebugDisp.IsEnabled = DebugSettings.Get("DebugTextDisplay");
            DebugDisp.Scale     = 0.75f;
#endif

#if (DEBUG && __DESKTOP__)
            if (istate.IsKeyExclusiveJustDown(SKeys.R))
            {
                _banner1.AnimationStartDelay = 0;
                _banner2.AnimationStartDelay = 0;

                var xcfg = XConfigFile.LoadFromString(System.IO.File.ReadAllText(@"F:\Symlinks\GridDominance\Data\presets\auto.xconf"));
                var pcfg = ParticleEmitterConfig.ParticleEmitterConfigBuilder.LoadFromXConfig(xcfg);
                _banner1.CreateEntities(pcfg);
                _banner2.CreateEntities(pcfg);
            }
#endif

            bool trigger = false;
            if (istate.IsKeyExclusiveJustDown(SKeys.AndroidBack))
            {
                istate.SwallowKey(SKeys.AndroidBack, InputConsumer.ScreenAgent);
                trigger = true;
            }
            else if (istate.IsKeyExclusiveJustDown(SKeys.Backspace))
            {
                istate.SwallowKey(SKeys.Backspace, InputConsumer.ScreenAgent);
                trigger = true;
            }

            if (trigger)
            {
                LeaveScreen();
            }
        }
Esempio n. 4
0
            public static ParticleEmitterConfigBuilder LoadFromXConfig(XConfigFile xcfg)
            {
                var builder = new ParticleEmitterConfigBuilder();

                builder.TextureIndex = xcfg.GetInt("TextureIndex");
                builder.SpawnRate    = xcfg.GetInt("SpawnRate");

                if (xcfg.Contains("ParticleLifetime"))
                {
                    builder.ParticleLifetime = xcfg.GetFloat("ParticleLifetime");
                }
                if (xcfg.Contains("ParticleLifetimeMin"))
                {
                    builder.ParticleLifetimeMin = xcfg.GetFloat("ParticleLifetimeMin");
                }
                if (xcfg.Contains("ParticleLifetimeMax"))
                {
                    builder.ParticleLifetimeMax = xcfg.GetFloat("ParticleLifetimeMax");
                }

                if (xcfg.Contains("ParticleSpawnAngle"))
                {
                    builder.ParticleSpawnAngle = xcfg.GetFloat("ParticleSpawnAngle");
                }
                if (xcfg.Contains("ParticleSpawnAngleMin"))
                {
                    builder.ParticleSpawnAngleMin = xcfg.GetFloat("ParticleSpawnAngleMin");
                }
                if (xcfg.Contains("ParticleSpawnAngleMax"))
                {
                    builder.ParticleSpawnAngleMax = xcfg.GetFloat("ParticleSpawnAngleMax");
                }

                if (xcfg.Contains("ParticleVelocity"))
                {
                    builder.ParticleVelocity = xcfg.GetFloat("ParticleVelocity");
                }
                if (xcfg.Contains("ParticleVelocityMin"))
                {
                    builder.ParticleVelocityMin = xcfg.GetFloat("ParticleVelocityMin");
                }
                if (xcfg.Contains("ParticleVelocityMax"))
                {
                    builder.ParticleVelocityMax = xcfg.GetFloat("ParticleVelocityMax");
                }

                if (xcfg.Contains("ParticleAlpha"))
                {
                    builder.ParticleAlpha = xcfg.GetFloat("ParticleAlpha");
                }
                if (xcfg.Contains("ParticleAlphaInitial"))
                {
                    builder.ParticleAlphaInitial = xcfg.GetFloat("ParticleAlphaInitial");
                }
                if (xcfg.Contains("ParticleAlphaFinal"))
                {
                    builder.ParticleAlphaFinal = xcfg.GetFloat("ParticleAlphaFinal");
                }

                if (xcfg.Contains("ParticleSize"))
                {
                    builder.ParticleSize = xcfg.GetFloat("ParticleSize");
                }

                if (xcfg.Contains("ParticleSizeInitial"))
                {
                    builder.ParticleSizeInitial = xcfg.GetFloat("ParticleSizeInitial");
                }
                if (xcfg.Contains("ParticleSizeInitialMin"))
                {
                    builder.ParticleSizeInitialMin = xcfg.GetFloat("ParticleSizeInitialMin");
                }
                if (xcfg.Contains("ParticleSizeInitialMax"))
                {
                    builder.ParticleSizeInitialMax = xcfg.GetFloat("ParticleSizeInitialMax");
                }

                if (xcfg.Contains("ParticleSizeFinal"))
                {
                    builder.ParticleSizeFinal = xcfg.GetFloat("ParticleSizeFinal");
                }
                if (xcfg.Contains("ParticleSizeFinalMin"))
                {
                    builder.ParticleSizeFinalMin = xcfg.GetFloat("ParticleSizeFinalMin");
                }
                if (xcfg.Contains("ParticleSizeFinalMax"))
                {
                    builder.ParticleSizeFinalMax = xcfg.GetFloat("ParticleSizeFinalMax");
                }

                if (xcfg.Contains("Color"))
                {
                    builder.Color = xcfg.GetKnownColor("Color");
                }
                if (xcfg.Contains("ColorInitial"))
                {
                    builder.ColorInitial = xcfg.GetKnownColor("ColorInitial");
                }
                if (xcfg.Contains("ColorFinal"))
                {
                    builder.ColorFinal = xcfg.GetKnownColor("ColorFinal");
                }

                return(builder);
            }