Particle start color is initialized correctly, small particle collision fix
This commit is contained in:
@@ -103,7 +103,7 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
sizeChange = prefab.SizeChangeMin + (prefab.SizeChangeMax - prefab.SizeChangeMin) * Rand.Range(0.0f, 1.0f);
|
sizeChange = prefab.SizeChangeMin + (prefab.SizeChangeMax - prefab.SizeChangeMin) * Rand.Range(0.0f, 1.0f);
|
||||||
|
|
||||||
color = prefab.StartColor;
|
color = new Color(prefab.StartColor, 1.0f);
|
||||||
alpha = prefab.StartAlpha;
|
alpha = prefab.StartAlpha;
|
||||||
|
|
||||||
velocityChange = prefab.VelocityChange;
|
velocityChange = prefab.VelocityChange;
|
||||||
@@ -242,24 +242,24 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
if (position.Y < prevHullRect.Y - prevHullRect.Height)
|
if (position.Y < prevHullRect.Y - prevHullRect.Height)
|
||||||
{
|
{
|
||||||
position.Y = prevHullRect.Y - prevHullRect.Height + 1.0f;
|
position.Y = prevHullRect.Y - prevHullRect.Height + prefab.CollisionRadius;
|
||||||
velocity.Y = -velocity.Y;
|
velocity.Y = -velocity.Y;
|
||||||
}
|
}
|
||||||
else if (position.Y > prevHullRect.Y)
|
else if (position.Y > prevHullRect.Y)
|
||||||
{
|
{
|
||||||
position.Y = prevHullRect.Y - 1.0f;
|
position.Y = prevHullRect.Y - prefab.CollisionRadius;
|
||||||
velocity.X = Math.Abs(velocity.Y) * Math.Sign(velocity.X);
|
velocity.X = Math.Abs(velocity.Y) * Math.Sign(velocity.X);
|
||||||
velocity.Y = -velocity.Y * 0.1f;
|
velocity.Y = -velocity.Y * 0.1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.X < prevHullRect.X)
|
if (position.X < prevHullRect.X)
|
||||||
{
|
{
|
||||||
position.X = prevHullRect.X + 1.0f;
|
position.X = prevHullRect.X + prefab.CollisionRadius;
|
||||||
velocity.X = -velocity.X;
|
velocity.X = -velocity.X;
|
||||||
}
|
}
|
||||||
else if (position.X > prevHullRect.X + prevHullRect.Width)
|
else if (position.X > prevHullRect.X + prevHullRect.Width)
|
||||||
{
|
{
|
||||||
position.X = prevHullRect.X + prevHullRect.Width - 1.0f;
|
position.X = prevHullRect.X + prevHullRect.Width - prefab.CollisionRadius;
|
||||||
velocity.X = -velocity.X;
|
velocity.X = -velocity.X;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,24 +275,24 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
if (position.Y < hullRect.Y - hullRect.Height)
|
if (position.Y < hullRect.Y - hullRect.Height)
|
||||||
{
|
{
|
||||||
position.Y = hullRect.Y - hullRect.Height - 1.0f;
|
position.Y = hullRect.Y - hullRect.Height - prefab.CollisionRadius;
|
||||||
velocity.Y = -velocity.Y;
|
velocity.Y = -velocity.Y;
|
||||||
}
|
}
|
||||||
else if (position.Y > hullRect.Y)
|
else if (position.Y > hullRect.Y)
|
||||||
{
|
{
|
||||||
position.Y = hullRect.Y + 1.0f;
|
position.Y = hullRect.Y + prefab.CollisionRadius;
|
||||||
velocity.X = Math.Abs(velocity.Y) * Math.Sign(velocity.X);
|
velocity.X = Math.Abs(velocity.Y) * Math.Sign(velocity.X);
|
||||||
velocity.Y = -velocity.Y;
|
velocity.Y = -velocity.Y;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.X < hullRect.X)
|
if (position.X < hullRect.X)
|
||||||
{
|
{
|
||||||
position.X = hullRect.X - 1.0f;
|
position.X = hullRect.X - prefab.CollisionRadius;
|
||||||
velocity.X = -velocity.X;
|
velocity.X = -velocity.X;
|
||||||
}
|
}
|
||||||
else if (position.X > hullRect.X + hullRect.Width)
|
else if (position.X > hullRect.X + hullRect.Width)
|
||||||
{
|
{
|
||||||
position.X = hullRect.X + hullRect.Width + 1.0f;
|
position.X = hullRect.X + hullRect.Width + prefab.CollisionRadius;
|
||||||
velocity.X = -velocity.X;
|
velocity.X = -velocity.X;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user