private static ParticleEmitterConfig CreateConfig(LevelBlueprint bp, FlatAlign4 a) { var w = 0f; switch (a) { case FlatAlign4.TOP: case FlatAlign4.BOTTOM: w = bp.LevelWidth; break; case FlatAlign4.LEFT: case FlatAlign4.RIGHT: w = bp.LevelHeight; break; default: SAMLog.Error("PPE::EnumSwitch_CC", "value = " + a); break; } return(new ParticleEmitterConfig.ParticleEmitterConfigBuilder { // star stuff TextureIndex = 10, SpawnRate = (0.1f * w), ParticleAlphaInitial = 0f, ParticleAlphaFinal = 1f, ParticleLifetimeMin = 1f, ParticleLifetimeMax = 2.5f, ParticleSizeInitial = 16, ParticleSizeFinal = 0, Color = Color.Black, }.Build(Textures.TexParticle)); }
public DonutParticleEmitter(GDGameScreen scrn, LevelBlueprint bp, FlatAlign4 a) : base(scrn, CreateConfig(bp, a), GDConstants.ORDER_GAME_PORTALPARTICLE) { Position = new FPoint(bp.LevelWidth / 2f, bp.LevelHeight / 2f); switch (a) { case FlatAlign4.TOP: _start = new FPoint(0, 0); _direction = new Vector2(bp.LevelWidth, 0); _normal = new Vector2(0, 1); break; case FlatAlign4.RIGHT: _start = new FPoint(bp.LevelWidth, 0); _direction = new Vector2(0, bp.LevelHeight); _normal = new Vector2(-1, 0); break; case FlatAlign4.BOTTOM: _start = new FPoint(bp.LevelWidth, bp.LevelHeight); _direction = new Vector2(-bp.LevelWidth, 0); _normal = new Vector2(0, -1); break; case FlatAlign4.LEFT: _start = new FPoint(0, bp.LevelHeight); _direction = new Vector2(0, -bp.LevelHeight); _normal = new Vector2(1, 0); break; default: SAMLog.Error("PPE::EnumSwitch_DPE", "value = " + a); break; } DrawingBoundingBox = new FSize(bp.LevelWidth, bp.LevelHeight); }