mirror of
https://github.com/AlexMacocian/MonoGame.Extended.git
synced 2026-07-18 00:19:30 +00:00
Merge pull request #756 from codymanix/ParticleEmitter_add_LayerDepth
add ability to configure layerdepth for autotriggered particleeffects
This commit is contained in:
@@ -11,7 +11,7 @@ namespace MonoGame.Extended.Particles
|
||||
{
|
||||
public class ParticleEffect : Transform2, IDisposable
|
||||
{
|
||||
public ParticleEffect(string name = null, bool autoTrigger = true, float autoTriggerDelay = 0f)
|
||||
public ParticleEffect(string name = null)
|
||||
{
|
||||
Name = name;
|
||||
Emitters = new List<ParticleEmitter>();
|
||||
@@ -74,10 +74,10 @@ namespace MonoGame.Extended.Particles
|
||||
Emitters[i].Trigger(position, layerDepth);
|
||||
}
|
||||
|
||||
public void Trigger(LineSegment line)
|
||||
public void Trigger(LineSegment line, float layerDepth = 0)
|
||||
{
|
||||
for (var i = 0; i < Emitters.Count; i++)
|
||||
Emitters[i].Trigger(line);
|
||||
Emitters[i].Trigger(line, layerDepth);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
@@ -85,4 +85,4 @@ namespace MonoGame.Extended.Particles
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ namespace MonoGame.Extended.Particles
|
||||
public Vector2 Offset { get; set; }
|
||||
public List<Modifier> Modifiers { get; }
|
||||
public Profile Profile { get; set; }
|
||||
public float LayerDepth { get; set; }
|
||||
public ParticleReleaseParameters Parameters { get; set; }
|
||||
public TextureRegion2D TextureRegion { get; set; }
|
||||
|
||||
@@ -132,7 +133,7 @@ namespace MonoGame.Extended.Particles
|
||||
|
||||
if (_nextAutoTrigger <= 0)
|
||||
{
|
||||
Trigger(position);
|
||||
Trigger(position, this.LayerDepth);
|
||||
_nextAutoTrigger = _autoTriggerFrequency;
|
||||
}
|
||||
}
|
||||
@@ -161,7 +162,7 @@ namespace MonoGame.Extended.Particles
|
||||
Release(position + Offset, numToRelease, layerDepth);
|
||||
}
|
||||
|
||||
public void Trigger(LineSegment line)
|
||||
public void Trigger(LineSegment line, float layerDepth = 0)
|
||||
{
|
||||
var numToRelease = _random.Next(Parameters.Quantity);
|
||||
var lineVector = line.ToVector();
|
||||
@@ -169,11 +170,11 @@ namespace MonoGame.Extended.Particles
|
||||
for (var i = 0; i < numToRelease; i++)
|
||||
{
|
||||
var offset = lineVector * _random.NextSingle();
|
||||
Release(line.Origin + offset, 1);
|
||||
Release(line.Origin + offset, 1, layerDepth);
|
||||
}
|
||||
}
|
||||
|
||||
private void Release(Vector2 position, int numToRelease, float layerDepth = 0)
|
||||
private void Release(Vector2 position, int numToRelease, float layerDepth)
|
||||
{
|
||||
var iterator = Buffer.Release(numToRelease);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user