Particle collision and project file fixes

This commit is contained in:
Regalis
2017-04-03 18:32:49 +03:00
parent 2f638a4c01
commit 2ca609855a
2 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -60,7 +60,7 @@
<ApplicationIcon>Icon.ico</ApplicationIcon> <ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Source\AnimatedSprite.cs" /> <Compile Include="Source\SpriteSheet.cs" />
<Compile Include="Source\Camera.cs" /> <Compile Include="Source\Camera.cs" />
<Compile Include="Source\Characters\AICharacter.cs" /> <Compile Include="Source\Characters\AICharacter.cs" />
<Compile Include="Source\Characters\AI\AIController.cs" /> <Compile Include="Source\Characters\AI\AIController.cs" />
+5 -5
View File
@@ -245,7 +245,7 @@ namespace Barotrauma.Particles
velocity -= (velocity / speed) * Math.Min(speed * speed * prefab.WaterDrag * deltaTime, 1.0f); velocity -= (velocity / speed) * Math.Min(speed * speed * prefab.WaterDrag * deltaTime, 1.0f);
} }
private void OnWallCollisionInside(Hull prevHull, Vector2 position) private void OnWallCollisionInside(Hull prevHull, Vector2 edgePos)
{ {
Rectangle prevHullRect = prevHull.WorldRect; Rectangle prevHullRect = prevHull.WorldRect;
@@ -253,24 +253,24 @@ namespace Barotrauma.Particles
velocity -= subVel; velocity -= subVel;
if (position.Y < prevHullRect.Y - prevHullRect.Height) if (edgePos.Y < prevHullRect.Y - prevHullRect.Height)
{ {
position.Y = prevHullRect.Y - prevHullRect.Height + prefab.CollisionRadius; position.Y = prevHullRect.Y - prevHullRect.Height + prefab.CollisionRadius;
velocity.Y = -velocity.Y; velocity.Y = -velocity.Y;
} }
else if (position.Y > prevHullRect.Y) else if (edgePos.Y > prevHullRect.Y)
{ {
position.Y = prevHullRect.Y - prefab.CollisionRadius; 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 (edgePos.X < prevHullRect.X)
{ {
position.X = prevHullRect.X + prefab.CollisionRadius; position.X = prevHullRect.X + prefab.CollisionRadius;
velocity.X = -velocity.X; velocity.X = -velocity.X;
} }
else if (position.X > prevHullRect.X + prevHullRect.Width) else if (edgePos.X > prevHullRect.X + prevHullRect.Width)
{ {
position.X = prevHullRect.X + prevHullRect.Width - prefab.CollisionRadius; position.X = prevHullRect.X + prevHullRect.Width - prefab.CollisionRadius;
velocity.X = -velocity.X; velocity.X = -velocity.X;