Nullable fixes, use Texture2d resource for rendering directly.

This commit is contained in:
2024-01-21 17:34:49 +01:00
parent cfbf46860d
commit 5f4e32e2e0
10 changed files with 105 additions and 74 deletions

View File

@@ -8,19 +8,28 @@ namespace DaggerFramework.SceneGraph
public class Particles2d : Drawable2d
{
public int MaxParticles => _maxParticles;
public ParticleSettings Settings => _settings;
public void BeginEmit(ParticleSettings settings)
public Particles2d(ParticleSettings settings)
{
_settings = settings;
_maxParticles = _settings.MaxParticles;
_particleIndex = _maxParticles - 1;
InitializeParticles();
_particles = new Particle[_maxParticles];
}
public void Restart()
{
CleanupParticles();
InitializeParticles();
// Allocate a new particle array if max particles property got changed.
if (_maxParticles != _settings.MaxParticles)
{
_particles = new Particle[_maxParticles];
}
}
public override void OnDraw(Renderer renderer)
{
foreach (var particle in _particles)
@@ -72,11 +81,6 @@ namespace DaggerFramework.SceneGraph
}
}
private void InitializeParticles()
{
_particles = new Particle[_maxParticles];
}
private void Emit()
{
Particle particle = _particles[_particleIndex];