Unstable 0.16.0.0

This commit is contained in:
Markus Isberg
2022-01-14 01:28:24 +09:00
parent d9baeaa2e1
commit 7d6421a548
237 changed files with 6430 additions and 2205 deletions
@@ -88,6 +88,7 @@ namespace Barotrauma
Circle, Rectangle, Capsule, HorizontalCapsule
};
public const float MinDensity = 0.01f;
public const float DefaultAngularDamping = 5.0f;
private static readonly List<PhysicsBody> list = new List<PhysicsBody>();
@@ -330,6 +331,7 @@ namespace Barotrauma
public PhysicsBody(float width, float height, float radius, float density)
{
density = Math.Max(density, MinDensity);
CreateBody(width, height, radius, density);
LastSentPosition = FarseerBody.Position;
list.Add(this);
@@ -367,7 +369,7 @@ namespace Barotrauma
float radius = ConvertUnits.ToSimUnits(limbParams.Radius) * limbParams.Scale * limbParams.Ragdoll.LimbScale;
float height = ConvertUnits.ToSimUnits(limbParams.Height) * limbParams.Scale * limbParams.Ragdoll.LimbScale;
float width = ConvertUnits.ToSimUnits(limbParams.Width) * limbParams.Scale * limbParams.Ragdoll.LimbScale;
density = limbParams.Density;
density = Math.Max(limbParams.Density, MinDensity);
CreateBody(width, height, radius, density);
FarseerBody.BodyType = BodyType.Dynamic;
FarseerBody.CollidesWith = Physics.CollisionWall | Physics.CollisionLevel;
@@ -386,13 +388,13 @@ namespace Barotrauma
float radius = ConvertUnits.ToSimUnits(element.GetAttributeFloat("radius", 0.0f)) * scale;
float height = ConvertUnits.ToSimUnits(element.GetAttributeFloat("height", 0.0f)) * scale;
float width = ConvertUnits.ToSimUnits(element.GetAttributeFloat("width", 0.0f)) * scale;
density = element.GetAttributeFloat("density", 10.0f);
density = Math.Max(element.GetAttributeFloat("density", 10.0f), MinDensity);
CreateBody(width, height, radius, density);
Enum.TryParse(element.GetAttributeString("bodytype", "Dynamic"), out BodyType bodyType);
FarseerBody.BodyType = bodyType;
FarseerBody.CollisionCategories = Physics.CollisionItem;
FarseerBody.CollidesWith = Physics.CollisionWall | Physics.CollisionLevel | Physics.CollisionPlatform;
FarseerBody.Friction = element.GetAttributeFloat("friction", 0.3f);
FarseerBody.Friction = element.GetAttributeFloat("friction", 0.5f);
FarseerBody.Restitution = element.GetAttributeFloat("restitution", 0.05f);
FarseerBody.UserData = this;
SetTransformIgnoreContacts(position, 0.0f);