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