public void CreateEmitter() { _pool = new ParticlePool(); _preInstantiatedLogic = Utilities.GetInstance(FireTemplate.Emitter); _emitter = new BenchmarkEmitter(_preInstantiatedLogic, _pool, new Random()) { IsEmittingNewParticles = true }; }
protected Emitter(IEmitterLogic emitterLogic, ParticlePool particlePool, Random random) { EmitterLogic = emitterLogic ?? throw new ArgumentNullException(nameof(emitterLogic)); Random = random; var initialCapacity = emitterLogic.GetEstimatedCapacity(); initialCapacity = Math.Max(1, initialCapacity); ParticleBuffer = new ParticleBuffer(particlePool, initialCapacity); }
public ParmeFrbEmitter CreateEmitter(IEmitterLogic logic, PositionedObject parent = null) { var emitter = new ParmeFrbEmitter(_particlePool, logic, _random) { Parent = parent }; _emitterRenderGroup.AddEmitter(emitter.Emitter); _frbEmitters.Add(emitter); return(emitter); }
public MonoGameEmitter(IEmitterLogic emitterLogic, ParticlePool particlePool, GraphicsDevice graphicsDevice, ITextureFileLoader textureFileLoader, Random random) : base(emitterLogic, particlePool, random) { if (textureFileLoader == null) { throw new ArgumentNullException(nameof(textureFileLoader)); } _texture = string.IsNullOrWhiteSpace(emitterLogic.TextureFilePath) ? GetDefaultWhiteTexture(graphicsDevice) : textureFileLoader.LoadTexture2D(emitterLogic.TextureFilePath); FullTextureSize = new System.Numerics.Vector2(_texture.Width, _texture.Height); }
public ParmeFrbEmitter CreateEmitter(IEmitterLogic logic, PositionedObject parent, string groupName = null) { if (logic == null) { throw new ArgumentNullException(nameof(logic)); } if (string.IsNullOrWhiteSpace(groupName)) { groupName = DefaultGroupName; } var group = GetEmitterGroup(groupName); var emitter = group.CreateEmitter(logic, parent); _emitterToGroupMap.Add(emitter, group); return(emitter); }
public BenchmarkEmitter(IEmitterLogic emitterLogic, ParticlePool particlePool, Random random) : base(emitterLogic, particlePool, random) { }