diff --git a/Content.IntegrationTests/Tests/Physics/PhysicsTestBedTest.cs b/Content.IntegrationTests/Tests/Physics/PhysicsTestBedTest.cs
index e60d74f974..f288792c9d 100644
--- a/Content.IntegrationTests/Tests/Physics/PhysicsTestBedTest.cs
+++ b/Content.IntegrationTests/Tests/Physics/PhysicsTestBedTest.cs
@@ -32,9 +32,8 @@ using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Physics;
+using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics;
-using Robust.Shared.Physics.Dynamics.Shapes;
-using Robust.UnitTesting;
namespace Content.IntegrationTests.Tests.Physics
{
diff --git a/Content.Server/Commands/Physics/TestbedCommand.cs b/Content.Server/Commands/Physics/TestbedCommand.cs
index f57fdfed15..094964e51f 100644
--- a/Content.Server/Commands/Physics/TestbedCommand.cs
+++ b/Content.Server/Commands/Physics/TestbedCommand.cs
@@ -31,8 +31,8 @@ using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Physics;
+using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics;
-using Robust.Shared.Physics.Dynamics.Shapes;
using Robust.Shared.Timing;
#nullable enable
@@ -275,8 +275,9 @@ namespace Content.Server.Commands.Physics
new Fixture(box, shape) {
CollisionLayer = (int) CollisionGroup.Impassable,
CollisionMask = (int) CollisionGroup.Impassable,
- Hard = true});
- box.Mass = 5.0f;
+ Hard = true,
+ Mass = 5.0f,
+ });
y += deltaY;
}
diff --git a/Content.Server/GameObjects/Components/Items/ThrowHelper.cs b/Content.Server/GameObjects/Components/Items/ThrowHelper.cs
index dfdbed4413..ebd2f127c5 100644
--- a/Content.Server/GameObjects/Components/Items/ThrowHelper.cs
+++ b/Content.Server/GameObjects/Components/Items/ThrowHelper.cs
@@ -12,6 +12,8 @@ namespace Content.Server.GameObjects.Components.Items
{
internal static class ThrowHelper
{
+ private const float ThrowAngularImpulse = 3.0f;
+
///
/// Tries to throw the entity if it has a physics component, otherwise does nothing.
///
@@ -41,6 +43,8 @@ namespace Content.Server.GameObjects.Components.Items
if (entity.HasComponent())
{
entity.EnsureComponent().Thrower = user;
+ // Give it a l'il spin.
+ physicsComponent.ApplyAngularImpulse(ThrowAngularImpulse);
if (user != null)
EntitySystem.Get().ThrownInteraction(user, entity);
diff --git a/Content.Server/GameObjects/Components/Singularity/ServerSingularityComponent.cs b/Content.Server/GameObjects/Components/Singularity/ServerSingularityComponent.cs
index ac1ca0a29e..cc9aaca84d 100644
--- a/Content.Server/GameObjects/Components/Singularity/ServerSingularityComponent.cs
+++ b/Content.Server/GameObjects/Components/Singularity/ServerSingularityComponent.cs
@@ -1,22 +1,16 @@
#nullable enable
-using Content.Server.GameObjects.Components.Observer;
-using System.Collections.Generic;
using System.Linq;
using Content.Server.GameObjects.Components.StationEvents;
-using Content.Shared.Physics;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
-using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map;
-using Robust.Shared.Maths;
using Robust.Shared.Physics;
using Robust.Shared.Physics.Collision;
-using Robust.Shared.Physics.Dynamics.Shapes;
-using Robust.Shared.Random;
using Robust.Server.GameObjects;
using Content.Shared.GameObjects.Components.Singularity;
+using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Player;
using Robust.Shared.Players;
using Robust.Shared.Timing;
@@ -27,9 +21,6 @@ namespace Content.Server.GameObjects.Components.Singularity
[RegisterComponent]
public class ServerSingularityComponent : SharedSingularityComponent, IStartCollide
{
- [Dependency] private readonly IRobustRandom _random = default!;
-
-
public int Energy
{
get => _energy;
diff --git a/Content.Server/Physics/Controllers/MoverController.cs b/Content.Server/Physics/Controllers/MoverController.cs
index 92590633f2..23d3b423f3 100644
--- a/Content.Server/Physics/Controllers/MoverController.cs
+++ b/Content.Server/Physics/Controllers/MoverController.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using Content.Server.GameObjects.Components.GUI;
using Content.Server.GameObjects.Components.Items.Storage;
-using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.Components.Movement;
using Content.Server.GameObjects.Components.Sound;
using Content.Shared.Audio;
@@ -10,9 +9,7 @@ using Content.Shared.GameObjects.Components.Inventory;
using Content.Shared.GameObjects.Components.Movement;
using Content.Shared.GameObjects.Components.Tag;
using Content.Shared.Maps;
-using Content.Shared.Physics;
using Content.Shared.Physics.Controllers;
-using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
@@ -20,7 +17,7 @@ using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Map;
using Robust.Shared.Maths;
-using Robust.Shared.Physics;
+using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
@@ -90,7 +87,6 @@ namespace Content.Server.Physics.Controllers
{
physics = gridEntity.AddComponent();
physics.BodyStatus = BodyStatus.InAir;
- physics.Mass = 1;
physics.CanCollide = true;
physics.AddFixture(new Fixture(physics, new PhysShapeGrid(grid)));
}
diff --git a/Content.Shared/Physics/Controllers/SharedTileFrictionController.cs b/Content.Shared/Physics/Controllers/SharedTileFrictionController.cs
index 6f0b89cee6..af83de1232 100644
--- a/Content.Shared/Physics/Controllers/SharedTileFrictionController.cs
+++ b/Content.Shared/Physics/Controllers/SharedTileFrictionController.cs
@@ -48,43 +48,80 @@ namespace Content.Shared.Physics.Controllers
foreach (var body in map.AwakeBodies)
{
- if (prediction && !body.Predict) continue;
-
- var speed = body.LinearVelocity.Length;
-
- if (speed <= 0.0f || body.BodyStatus == BodyStatus.InAir) continue;
-
- // This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
- var drop = 0.0f;
- float control;
-
- // Only apply friction when it's not a mob (or the mob doesn't have control).
- if (SharedMoverController.UseMobMovement(_broadPhaseSystem, body, _physicsManager)) continue;
+ // Only apply friction when it's not a mob (or the mob doesn't have control)
+ if (prediction && !body.Predict ||
+ body.BodyStatus == BodyStatus.InAir ||
+ SharedMoverController.UseMobMovement(_broadPhaseSystem, body, _physicsManager)) continue;
var surfaceFriction = GetTileFriction(body);
var bodyModifier = body.Owner.GetComponentOrNull()?.Modifier ?? 1.0f;
var friction = _frictionModifier * surfaceFriction * bodyModifier;
- if (friction > 0.0f)
- {
- // TBH I can't really tell if this makes a difference.
- if (!prediction)
- {
- control = speed < _stopSpeed ? _stopSpeed : speed;
- }
- else
- {
- control = speed;
- }
+ ReduceLinearVelocity(prediction, body, friction, frameTime);
+ ReduceAngularVelocity(prediction, body, friction, frameTime);
+ }
+ }
- drop += control * friction * frameTime;
+ private void ReduceLinearVelocity(bool prediction, PhysicsComponent body, float friction, float frameTime)
+ {
+ var speed = body.LinearVelocity.Length;
+
+ if (speed <= 0.0f) return;
+
+ // This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
+ var drop = 0.0f;
+ float control;
+
+ if (friction > 0.0f)
+ {
+ // TBH I can't really tell if this makes a difference.
+ if (!prediction)
+ {
+ control = speed < _stopSpeed ? _stopSpeed : speed;
+ }
+ else
+ {
+ control = speed;
}
- var newSpeed = MathF.Max(0.0f, speed - drop);
-
- newSpeed /= speed;
- body.LinearVelocity *= newSpeed;
+ drop += control * friction * frameTime;
}
+
+ var newSpeed = MathF.Max(0.0f, speed - drop);
+
+ newSpeed /= speed;
+ body.LinearVelocity *= newSpeed;
+ }
+
+ private void ReduceAngularVelocity(bool prediction, PhysicsComponent body, float friction, float frameTime)
+ {
+ var speed = MathF.Abs(body.AngularVelocity);
+
+ if (speed <= 0.0f) return;
+
+ // This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
+ var drop = 0.0f;
+ float control;
+
+ if (friction > 0.0f)
+ {
+ // TBH I can't really tell if this makes a difference.
+ if (!prediction)
+ {
+ control = speed < _stopSpeed ? _stopSpeed : speed;
+ }
+ else
+ {
+ control = speed;
+ }
+
+ drop += control * friction * frameTime;
+ }
+
+ var newSpeed = MathF.Max(0.0f, speed - drop);
+
+ newSpeed /= speed;
+ body.AngularVelocity *= newSpeed;
}
[Pure]
diff --git a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml
index efa1485fc5..2738e0bccc 100644
--- a/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml
+++ b/Resources/Prototypes/Entities/Constructible/Doors/airlock_base.yml
@@ -24,11 +24,11 @@
- state: panel_open
map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Physics
- mass: 100
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
+ mass: 100
mask:
- MobImpassable
layer:
@@ -91,11 +91,11 @@
sprite: Constructible/Structures/Doors/Standard/basic.rsi
state: "assembly"
- type: Physics
- mass: 100
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
+ mass: 100
mask:
- MobImpassable
layer:
diff --git a/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml b/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml
index 805021f7e5..c52a2f0505 100644
--- a/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml
+++ b/Resources/Prototypes/Entities/Constructible/Doors/firelock.yml
@@ -110,7 +110,7 @@
fixtures:
- shape:
!type:PhysShapeRect
- bounds: "0.49,-0.49,-0.49,-0.2" # don't want this colliding with walls or they won't close
+ bounds: "0.49,-0.49,-0.49,-0.2" # don't want this colliding with walls or they won't close
mask:
- MobImpassable
layer:
diff --git a/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml b/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml
index fd2672d6fa..825a9a96f9 100644
--- a/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml
+++ b/Resources/Prototypes/Entities/Constructible/Doors/firelock_frame.yml
@@ -23,11 +23,11 @@
acts: ["Destruction"]
- type: Physics
bodyType: Dynamic
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
+ mass: 50
layer:
- SmallImpassable
mask:
diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml b/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml
index 1a32638bf4..49778bb69b 100644
--- a/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml
+++ b/Resources/Prototypes/Entities/Constructible/Furniture/beds.yml
@@ -9,12 +9,12 @@
- type: PlaceableSurface
placeCentered: true
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.05, 0.45"
+ mass: 25
mask:
- SmallImpassable
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml b/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml
index 766a64a3fa..cdb8d58fdd 100644
--- a/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml
+++ b/Resources/Prototypes/Entities/Constructible/Furniture/potted_plants.yml
@@ -5,12 +5,12 @@
components:
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.2, 0.5, 0.2"
+ mass: 25
mask:
- MobImpassable
layer:
@@ -55,12 +55,12 @@
- type: Sprite
state: plant-25
- type: Physics
- mass: 25
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.47,-0.25,0.05,0.25"
+ mass: 25
layer:
- SmallImpassable
mask:
diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml b/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml
index 22b33f09ab..ba9750b9c3 100644
--- a/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml
+++ b/Resources/Prototypes/Entities/Constructible/Furniture/storage.yml
@@ -12,12 +12,12 @@
sprite: Constructible/Misc/furniture.rsi
state: rack
- type: Physics
- mass: 50
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.3,-0.3,0.3,0.3"
+ mass: 50
layer:
- MobImpassable
mask:
diff --git a/Resources/Prototypes/Entities/Constructible/Piping/gascanisters.yml b/Resources/Prototypes/Entities/Constructible/Piping/gascanisters.yml
index 8117f7a21e..a85388e283 100644
--- a/Resources/Prototypes/Entities/Constructible/Piping/gascanisters.yml
+++ b/Resources/Prototypes/Entities/Constructible/Piping/gascanisters.yml
@@ -9,19 +9,19 @@
- type: Sprite
- type: Damageable
- type: Physics
- mass: 25
bodyType: Dynamic
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.25,0.5,0.25"
- mask:
- - MobImpassable
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.25,0.5,0.25"
+ mass: 25
+ mask:
+ - MobImpassable
+ layer:
+ - Opaque
+ - MobImpassable
+ - SmallImpassable
+ - VaultImpassable
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Constructible/Power/computers.yml b/Resources/Prototypes/Entities/Constructible/Power/computers.yml
index 64e77462eb..01786a389c 100644
--- a/Resources/Prototypes/Entities/Constructible/Power/computers.yml
+++ b/Resources/Prototypes/Entities/Constructible/Power/computers.yml
@@ -5,12 +5,12 @@
description: "A computer under construction. It needs a circuit board."
components:
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25"
+ mass: 25
mask:
- MobImpassable
layer:
diff --git a/Resources/Prototypes/Entities/Constructible/Power/lathe.yml b/Resources/Prototypes/Entities/Constructible/Power/lathe.yml
index 47ee3c8ea5..1ce11d5748 100644
--- a/Resources/Prototypes/Entities/Constructible/Power/lathe.yml
+++ b/Resources/Prototypes/Entities/Constructible/Power/lathe.yml
@@ -8,12 +8,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
+ mass: 25
mask:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Power/machine_frame.yml b/Resources/Prototypes/Entities/Constructible/Power/machine_frame.yml
index 9340106f52..a973737234 100644
--- a/Resources/Prototypes/Entities/Constructible/Power/machine_frame.yml
+++ b/Resources/Prototypes/Entities/Constructible/Power/machine_frame.yml
@@ -7,21 +7,21 @@
mode: SnapgridCenter
components:
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.25,0.5,0.25"
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
- mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.25,0.5,0.25"
+ mass: 25
+ layer:
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
+ - Opaque
+ mask:
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
- type: Clickable
- type: InteractionOutline
- type: Anchorable
@@ -54,21 +54,21 @@
mode: SnapgridCenter
components:
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.25,0.5,0.25"
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
- mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.25,0.5,0.25"
+ mass: 25
+ layer:
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
+ - Opaque
+ mask:
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
- type: Clickable
- type: InteractionOutline
- type: Anchorable
diff --git a/Resources/Prototypes/Entities/Constructible/Power/power_base.yml b/Resources/Prototypes/Entities/Constructible/Power/power_base.yml
index 2de01f995c..9171fdfdb3 100644
--- a/Resources/Prototypes/Entities/Constructible/Power/power_base.yml
+++ b/Resources/Prototypes/Entities/Constructible/Power/power_base.yml
@@ -9,12 +9,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.4, 0.3, 0.4"
+ mass: 25
mask:
- Impassable
- MobImpassable
@@ -54,11 +54,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
mask:
- Impassable
- MobImpassable
@@ -113,11 +113,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
mask:
- Impassable
- MobImpassable
@@ -228,11 +228,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 100
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 100
mask:
- Impassable
- MobImpassable
@@ -285,11 +285,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 75
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 75
mask:
- VaultImpassable
layer:
@@ -323,11 +323,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 100
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 100
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Power/seed_extractor.yml b/Resources/Prototypes/Entities/Constructible/Power/seed_extractor.yml
index b1cdc79faf..262729b4e2 100644
--- a/Resources/Prototypes/Entities/Constructible/Power/seed_extractor.yml
+++ b/Resources/Prototypes/Entities/Constructible/Power/seed_extractor.yml
@@ -11,17 +11,17 @@
sprite: Constructible/Hydroponics/machines.rsi
state: seedextractor
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.25,0.4,0.25"
- layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.25,0.4,0.25"
+ mass: 25
+ layer:
+ - Opaque
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
- type: SnapGrid
offset: Center
- type: Anchorable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Dispensers/reagent_dispenser_base.yml b/Resources/Prototypes/Entities/Constructible/Specific/Dispensers/reagent_dispenser_base.yml
index a0e0582619..4b49fe4325 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Dispensers/reagent_dispenser_base.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Dispensers/reagent_dispenser_base.yml
@@ -7,12 +7,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.3,-0.4,0.3,0.4"
+ mass: 25
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/AME/controller.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/AME/controller.yml
index fe1cb69049..738bb1746f 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/AME/controller.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/AME/controller.yml
@@ -11,11 +11,11 @@
sprite: Constructible/Power/ame_controller.rsi
state: control
- type: Physics
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.45, 0.45"
+ mass: 25
layer:
- Opaque
- Impassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/base.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/base.yml
index 57259e265d..e2ef69a3c4 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/base.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/PA/base.yml
@@ -8,12 +8,12 @@
- type: Anchorable
snap: true
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
+ mass: 25
mask:
- Opaque
- Impassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/collector.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/collector.yml
index 0c7bb30a2b..5f271a04a4 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/collector.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/collector.yml
@@ -9,11 +9,11 @@
- type: InteractionOutline
- type: Physics
bodyType: Static
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 25
layer:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/containment.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/containment.yml
index c703be969f..1d88449b7b 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/containment.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/containment.yml
@@ -9,11 +9,11 @@
- type: Clickable
- type: Physics
bodyType: Static
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 25
layer:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/emitter.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/emitter.yml
index 48ae79cd15..56815c9cdc 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/emitter.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/emitter.yml
@@ -6,12 +6,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 100
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25, -0.25, 0.25, 0.25"
+ mass: 100
layer:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/generator.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/generator.yml
index 1409bf45d8..e5e0f9d06d 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/generator.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/generator.yml
@@ -13,11 +13,11 @@
- type: Clickable
- type: Physics
bodyType: Static
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 25
layer:
- Opaque
mask:
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/singularity.yml b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/singularity.yml
index 1e24aa9656..73cacc544d 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/singularity.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Engines/Singularity/singularity.yml
@@ -10,10 +10,11 @@
- shape:
!type:PhysShapeCircle
radius: 0.5
- layer: [Impassable]
+ mass: 5
+ layer:
+ - Impassable
mask:
- AllMask
- mass: 5
- type: Singularity
- type: RadiationPulse
range: 15
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Medical/cloning_machine.yml b/Resources/Prototypes/Entities/Constructible/Specific/Medical/cloning_machine.yml
index 2a20625964..be049d2bf4 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Medical/cloning_machine.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Medical/cloning_machine.yml
@@ -16,17 +16,17 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.25,0.5,0.25"
- layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.25,0.5,0.25"
+ mass: 25
+ layer:
+ - Opaque
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
- type: SnapGrid
offset: Center
- type: CloningPod
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Medical/medical_scanner.yml b/Resources/Prototypes/Entities/Constructible/Specific/Medical/medical_scanner.yml
index b2b4409890..a2b5bf448a 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Medical/medical_scanner.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Medical/medical_scanner.yml
@@ -18,11 +18,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
layer:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/Research/research.yml b/Resources/Prototypes/Entities/Constructible/Specific/Research/research.yml
index fbf5baa23b..62e5bb6c6f 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/Research/research.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/Research/research.yml
@@ -9,11 +9,11 @@
state: server
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
mask:
- SmallImpassable
layer:
@@ -40,11 +40,11 @@
map: ["enum.PowerDeviceVisualLayers.Powered"]
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
mask:
- SmallImpassable
layer:
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml b/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml
index 0d05f88aea..f041f5a07b 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/cargo_telepad.yml
@@ -6,12 +6,12 @@
components:
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.00, 0.45"
+ mass: 25
layer:
- Passable
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/chem_master.yml b/Resources/Prototypes/Entities/Constructible/Specific/chem_master.yml
index 445fa36ef3..84ce8483d5 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/chem_master.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/chem_master.yml
@@ -22,11 +22,11 @@
snap: true
- type: Physics
bodyType: Static
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.25,0.4,0.25"
+ mass: 25
mask:
- SmallImpassable
layer:
@@ -69,12 +69,12 @@
state: mixer_broken
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.25,0.4,0.25"
+ mass: 25
mask:
- SmallImpassable
layer:
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/hydroponics.yml b/Resources/Prototypes/Entities/Constructible/Specific/hydroponics.yml
index 3ac867f696..c8770fe4b0 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/hydroponics.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/hydroponics.yml
@@ -7,12 +7,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.1, 0.5"
+ mass: 25
hard: false
mask:
- Impassable
@@ -58,10 +58,10 @@
description: An interstellar-grade space farmplot allowing for rapid growth and selective breeding of crops. Just... keep in mind the space weeds.
components:
- type: Physics
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 25
hard: true
mask:
- Impassable
diff --git a/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml b/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml
index 17c709729f..55ee3a46fd 100644
--- a/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml
+++ b/Resources/Prototypes/Entities/Constructible/Specific/traitordm.yml
@@ -14,11 +14,11 @@
- type: InteractionOutline
- type: Physics
bodyType: Static
- mass: 1
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 1
layer:
- Clickable
- type: TraitorDeathMatchRedemption
diff --git a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml
index 83e8a98836..f291a87e2e 100644
--- a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml
+++ b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml
@@ -19,11 +19,11 @@
soundHit: /Audio/Effects/bang.ogg
- type: InteractionOutline
- type: Physics
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.48,-0.25,0.48,0.25"
+ mass: 70
mask:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml b/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml
index a954ba182f..954d529693 100644
--- a/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml
+++ b/Resources/Prototypes/Entities/Constructible/Storage/Crates/crate_base.yml
@@ -17,11 +17,11 @@
map: ["enum.StorageVisualLayers.Welded"]
- type: InteractionOutline
- type: Physics
- mass: 25
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4, -0.4, 0.29, 0.4"
+ mass: 25
mask:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml
index 58bdad382d..45dc455272 100644
--- a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml
+++ b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/base_tank.yml
@@ -7,11 +7,11 @@
components:
- type: InteractionOutline
- type: Physics
- mass: 100
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
+ mass: 100
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml
index 8e08f359c8..c12809b5df 100644
--- a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml
+++ b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml
@@ -6,10 +6,10 @@
components:
- type: Physics
bodyType: Static
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 50
layer:
- SmallImpassable
mask:
diff --git a/Resources/Prototypes/Entities/Constructible/base.yml b/Resources/Prototypes/Entities/Constructible/base.yml
index e3c5f120a6..c3ab648ca6 100644
--- a/Resources/Prototypes/Entities/Constructible/base.yml
+++ b/Resources/Prototypes/Entities/Constructible/base.yml
@@ -9,10 +9,10 @@
- type: Clickable
- type: Physics
bodyType: Static
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 50
layer:
- SmallImpassable
mask:
@@ -33,10 +33,10 @@
- type: Clickable
- type: Physics
bodyType: Dynamic
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 50
layer:
- SmallImpassable
mask:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index ca488519d7..de4a70ec5b 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -15,11 +15,11 @@
sprite: Mobs/Animals/monkey.rsi
- type: Physics
bodyType: Dynamic
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.30,-0.25,0.40,0.25"
+ mass: 50
mask:
- Impassable
- VaultImpassable
@@ -49,11 +49,11 @@
sprite: Mobs/Animals/gorilla.rsi
- type: Physics
bodyType: Dynamic
- mass: 90
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.90,-0.50,0.05,0.50"
+ mass: 90
mask:
- Impassable
- VaultImpassable
@@ -80,11 +80,11 @@
sprite: Mobs/Animals/chicken.rsi
- type: Physics
bodyType: Dynamic
- mass: 20
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.20,0.10,0.20"
+ mass: 20
mask:
- Impassable
- VaultImpassable
@@ -114,11 +114,11 @@
sprite: Mobs/Animals/butterfly.rsi
- type: Physics
bodyType: Dynamic
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.20,-0.20,0.20,0.20"
+ mass: 5
mask:
- Impassable
- VaultImpassable
@@ -158,11 +158,11 @@
sprite: Mobs/Animals/bat.rsi
- type: Physics
bodyType: Dynamic
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.20,-0.20,0.20,0.20"
+ mass: 5
mask:
- Impassable
- VaultImpassable
@@ -193,11 +193,11 @@
sprite: Mobs/Animals/bee.rsi
- type: Physics
bodyType: Dynamic
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.10,-0.10,0.10,0.10"
+ mass: 5
mask:
- Impassable
- VaultImpassable
@@ -224,11 +224,11 @@
sprite: Mobs/Animals/goat.rsi
- type: Physics
bodyType: Dynamic
- mass: 20
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.60,-0.50,0.05,0.50"
+ mass: 20
mask:
- Impassable
- VaultImpassable
@@ -256,11 +256,11 @@
sprite: Mobs/Animals/goose.rsi
- type: Physics
bodyType: Dynamic
- mass: 20
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.35,0.45,0.35"
+ mass: 20
mask:
- Impassable
- VaultImpassable
@@ -291,11 +291,11 @@
sprite: Mobs/Animals/parrot.rsi
- type: Physics
bodyType: Dynamic
- mass: 20
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.30,-0.35,0.35,0.35"
+ mass: 20
mask:
- Impassable
- VaultImpassable
@@ -322,11 +322,11 @@
sprite: Mobs/Animals/snake.rsi
- type: Physics
bodyType: Dynamic
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.30,-0.30,0.25,0.30"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -356,11 +356,11 @@
sprite: Mobs/Animals/spider.rsi
- type: Physics
bodyType: Dynamic
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.30,-0.40,0.45,0.40"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -387,11 +387,11 @@
sprite: Mobs/Animals/crab.rsi
- type: Physics
bodyType: Dynamic
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.40,-0.35,0.20,0.35"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -418,11 +418,11 @@
sprite: Mobs/Animals/penguin.rsi
- type: Physics
bodyType: Dynamic
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.50,-0.30,0.35,0.30"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -463,11 +463,11 @@
- Helmet
- type: Physics
bodyType: KinematicController
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.50,-0.30,0.35,0.30"
+ mass: 10
mask:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
index bf294ee319..60906ce557 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
@@ -19,15 +19,14 @@
sprite: Mobs/Aliens/Carps/space.rsi
- type: Physics
bodyType: Dynamic
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 50
mask:
- Impassable
- MobImpassable
- - VaultImpassable
- SmallImpassable
layer:
- Opaque
@@ -55,8 +54,6 @@
- map: ["enum.DamageStateVisualLayers.Base"]
state: alive
sprite: Mobs/Aliens/Carps/magic.rsi
- - type: Physics
- mass: 60
- type: entity
name: holocarp
@@ -71,4 +68,15 @@
state: alive
sprite: Mobs/Aliens/Carps/holo.rsi
- type: Physics
- mass: 5
+ bodyType: Dynamic
+ fixtures:
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 5
+ mask:
+ - Impassable
+ - MobImpassable
+ - SmallImpassable
+ layer:
+ - Opaque
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
index 759d626051..060107e51e 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
@@ -23,11 +23,11 @@
state: normal
- type: Physics
bodyType: Dynamic
- mass: 85
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 100
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
index 7c5edfc0a8..6e19963c74 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
@@ -14,11 +14,11 @@
- map: ["enum.DamageStateVisualLayers.Base"]
state: corgi
- type: Physics
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.50,-0.25,0.30,0.25"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -62,11 +62,11 @@
- map: ["enum.DamageStateVisualLayers.Base"]
state: cat
- type: Physics
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.20,0.30,0.20"
+ mass: 10
mask:
- Impassable
- VaultImpassable
@@ -131,11 +131,11 @@
- map: ["enum.DamageStateVisualLayers.Base"]
state: sloth
- type: Physics
- mass: 10
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.35,0.15,0.35"
+ mass: 10
mask:
- Impassable
- VaultImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
index 8d35b91256..54ee5e625b 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
@@ -45,10 +45,10 @@
- type: InteractionOutline
- type: Physics
bodyType: Dynamic
- mass: 50
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mass: 50
mask:
- Impassable
# - MobImpassable Turns these off for now since humans don't have collisions either.
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
index 9f6aa0c647..7b5b7dfcab 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
@@ -21,11 +21,11 @@
sprite: Mobs/Aliens/Xenos/xeno.rsi
- type: Physics
bodyType: Dynamic
- mass: 85
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-1,-0.4,-0.2,0.4"
+ mass: 85
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
index 96818923ee..1620e42796 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
@@ -8,12 +8,12 @@
- type: PlayerInputMover
- type: Physics
bodyType: Kinematic
- mass: 5
# TODO: Even need these? Don't think so but CBF checking right now.
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.35,-0.35,0.35,0.35"
- mask:
- - GhostImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 5
+ mask:
+ - GhostImpassable
status: InAir
diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml
index 52c9d35ebc..f896e8f416 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml
@@ -10,11 +10,11 @@
- type: InteractionOutline
- type: Physics
bodyType: KinematicController
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 5
mask:
- GhostImpassable
status: InAir
diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml
index 282567364b..100ad4c4b0 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/human.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml
@@ -135,11 +135,11 @@
- map: [ "enum.Slots.HEAD" ]
- type: Physics
bodyType: KinematicController
- mass: 70
fixtures: # TODO: This needs a second fixture just for mob collisions.
- shape:
!type:PhysShapeCircle
radius: 0.35
+ mass: 70
restitution: 0.0
mask:
- Impassable
@@ -319,11 +319,12 @@
- map: ["hand-right"]
- type: Physics
bodyType: Dynamic
- mass: 85
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 70
+ restitution: 0.0
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml
index 6d525f5f10..be06e8b53d 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml
@@ -115,17 +115,17 @@
- map: [ "enum.Slots.HEAD" ]
- type: Physics
bodyType: Dynamic
- mass: 85
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.35,-0.35,0.35,0.35"
- mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- layer:
- - Opaque
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.35,-0.35,0.35,0.35"
+ mass: 85
+ mask:
+ - Impassable
+ - MobImpassable
+ - VaultImpassable
+ layer:
+ - Opaque
- type: PlayerInputMover
- type: AtmosExposed
- type: Flammable
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/trash.yml b/Resources/Prototypes/Entities/Objects/Consumable/trash.yml
index ba8eacbbfb..340beecbc3 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/trash.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/trash.yml
@@ -186,13 +186,13 @@
enabled: false
- type: Physics
bodyType: KinematicController
- mass: 5
fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions.
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.2,-0.2,0.2,0.2"
- layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.2,-0.2,0.2,0.2"
+ mass: 5
+ layer:
+ - SmallImpassable
+ mask:
+ - Impassable
+ - MobImpassable
diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
index 2a3185746d..7f2bc93a7b 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
@@ -89,17 +89,17 @@
enabled: false
- type: Physics
bodyType: KinematicController
- mass: 2.5
fixtures: # TODO: Make a second fixture.
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.3,-0.4,0.3,0.4"
- hard: false
- layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.3,-0.4,0.3,0.4"
+ mass: 2.5
+ hard: false
+ layer:
+ - SmallImpassable
+ mask:
+ - Impassable
+ - MobImpassable
- type: entity
name: Mime PDA
diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml
index 640be828f2..87b5146fe4 100644
--- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml
+++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml
@@ -322,11 +322,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 5
mask: [Impassable]
layer: [Clickable]
@@ -351,11 +351,11 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 5
mask: [Impassable]
layer: [Clickable]
@@ -379,10 +379,10 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 5
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 5
mask: [Impassable]
layer: [Clickable]
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
index d012a274de..a250f175cc 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
@@ -19,12 +19,12 @@
- type: InteractionOutline
- type: MovedByPressure
- type: Physics
- mass: 5
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.5,0.1,0.5"
+ mass: 5
layer:
- Clickable
- type: BodyBagEntityStorage
@@ -73,12 +73,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 25
mask:
- Impassable
- MobImpassable
@@ -119,12 +119,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 15
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 15
layer:
- Clickable
- type: MorgueTray
@@ -148,12 +148,12 @@
- type: Clickable
- type: InteractionOutline
- type: Physics
- mass: 25
bodyType: Static
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5"
+ mass: 25
mask:
- Impassable
- MobImpassable
diff --git a/Resources/Prototypes/Entities/Objects/Specific/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/janitor.yml
index ad36750a81..5afe3a58fc 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/janitor.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/janitor.yml
@@ -39,12 +39,12 @@
Quantity: 500
- type: Physics
- mass: 5
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.40,-0.25,0.25,0.25"
+ mass: 5
mask:
- Impassable
- Opaque
@@ -70,12 +70,12 @@
- type: SolutionContainer
maxVol: 500
- type: Physics
- mass: 5
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 5
mask:
- Impassable
- type: Spillable
@@ -110,16 +110,16 @@
enabled: false
- type: Physics
bodyType: KinematicController
- mass: 2.5
fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions.
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.3,-0.4,0.3,0.4"
- layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.3,-0.4,0.3,0.4"
+ mass: 2.5
+ layer:
+ - SmallImpassable
+ mask:
+ - Impassable
+ - MobImpassable
- type: entity
name: soap
diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
index 6a88cdc602..2bf9b61235 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
@@ -27,17 +27,17 @@
enabled: false
- type: Physics
bodyType: KinematicController
- mass: 2.5
fixtures: # TODO: Make a second fixture.
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.3,-0.4,0.3,0.4"
- hard: false
- layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.3,-0.4,0.3,0.4"
+ mass: 2.5
+ hard: false
+ layer:
+ - SmallImpassable
+ mask:
+ - Impassable
+ - MobImpassable
- type: entity
parent: PlushieCarp
@@ -66,14 +66,14 @@
enabled: false
- type: Physics
bodyType: KinematicController
- mass: 2.5
fixtures: # TODO: Make a second fixture.
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
- hard: false
- layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.4,0.4,0.4"
+ mass: 2.5
+ hard: false
+ layer:
+ - SmallImpassable
+ mask:
+ - Impassable
+ - MobImpassable
diff --git a/Resources/Prototypes/Entities/Objects/base.yml b/Resources/Prototypes/Entities/Objects/base.yml
index 48e1f96bc7..caa3b7f4ff 100644
--- a/Resources/Prototypes/Entities/Objects/base.yml
+++ b/Resources/Prototypes/Entities/Objects/base.yml
@@ -14,11 +14,12 @@
modifier: 0.5
- type: Physics
bodyType: Dynamic
- mass: 5
+ fixedRotation: false
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 5
layer:
- Clickable
mask:
@@ -28,4 +29,5 @@
friction: 0.2
- type: Sprite
drawdepth: Items
+ noRot: false
- type: Pullable
diff --git a/RobustToolbox b/RobustToolbox
index e16732eb7b..d8612aff64 160000
--- a/RobustToolbox
+++ b/RobustToolbox
@@ -1 +1 @@
-Subproject commit e16732eb7bdc05898ebe0248e85c49b97495ac6a
+Subproject commit d8612aff6456c3a4a8d04de944c885b3ab782bdc