From 8c853476fbf8b6a188028a4e38097eda51cce07e Mon Sep 17 00:00:00 2001
From: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
Date: Tue, 10 May 2022 17:57:20 -0700
Subject: [PATCH] Rework CollisionGroups (#7656)
* Replace Mob, Vault, and Small impassable with Mid, High, Low
* Remove CollisionGroup.Underplating
* Remove CollisionGroup.Passable
* Fix constructed APCs not being interactable
* Change firelocks to occlude
* Make pipe inherit from BaseItem
* Clean up pipes
* Remove duplicate physics and fixtures from bucket
* Rework CollisionGroups on all entities
* Add SlipLayer
* Remove fixture from delta
* Fix maps
* Address reviews
* Add SubfloorMask
* Fix glass collisions for flying mobs
* Fix maps
* Update new items
* Fix bagel again
* Fix slug
* Fix maps
* Touchups
* Fix tables blocking high pressure movement
* Update StandingState to allow going under flaps
* Cleanup
* More formatting
---
.../Utility/EntitySystemExtensionsTest.cs | 8 +-
.../AI/Pathfinding/PathfindingSystem.cs | 6 +-
.../AtmosphereSystem.HighPressureDelta.cs | 4 +-
Content.Server/Climbing/ClimbSystem.cs | 2 +-
.../EntitySystems/TriggerSystem.Proximity.cs | 2 +-
.../MorgueEntityStorageComponent.cs | 4 +-
.../Shuttles/EntitySystems/ThrusterSystem.cs | 2 +-
.../Components/EntityStorageComponent.cs | 6 +-
Content.Shared/Physics/CollisionGroup.cs | 81 +++++++----
.../Standing/StandingStateComponent.cs | 8 +-
.../Standing/StandingStateSystem.cs | 16 ++-
Resources/Maps/Salvage/tick-colony.yml | 12 +-
Resources/Maps/atlas.yml | 51 -------
Resources/Maps/bagel.yml | 51 -------
Resources/Maps/barratry.yml | 34 -----
Resources/Maps/delta.yml | 17 ---
Resources/Maps/infiltrator.yml | 81 -----------
Resources/Maps/marathon.yml | 34 -----
Resources/Maps/moose.yml | 17 ---
Resources/Maps/saltern.yml | 17 ---
Resources/Maps/splitstation.yml | 17 ---
.../Entities/Effects/chemistry_effects.yml | 32 +----
.../Prototypes/Entities/Effects/puddle.yml | 8 +-
.../Prototypes/Entities/Mobs/NPCs/animals.yml | 128 ++++++-----------
.../Prototypes/Entities/Mobs/NPCs/bear.yml | 6 +-
.../Prototypes/Entities/Mobs/NPCs/carp.yml | 12 +-
.../Prototypes/Entities/Mobs/NPCs/mimic.yml | 10 +-
.../Prototypes/Entities/Mobs/NPCs/pets.yml | 46 ++-----
.../Entities/Mobs/NPCs/simplemob.yml | 7 +-
.../Entities/Mobs/NPCs/spacetick.yml | 6 +-
.../Prototypes/Entities/Mobs/NPCs/xeno.yml | 7 +-
.../Entities/Mobs/Player/admin_ghost.yml | 2 +-
.../Entities/Mobs/Player/guardian.yml | 4 +-
.../Entities/Mobs/Player/observer.yml | 2 +-
.../Entities/Mobs/Player/silicon.yml | 19 +--
.../Entities/Mobs/Species/human.yml | 16 +--
.../Objects/Consumable/Food/produce.yml | 4 +-
.../Entities/Objects/Decoration/flora.yml | 27 ++--
.../Entities/Objects/Devices/nuke.yml | 130 +++++++++---------
.../Entities/Objects/Devices/pda.yml | 4 +-
.../Entities/Objects/Misc/fluff_lights.yml | 20 +--
.../Entities/Objects/Misc/inflatable_wall.yml | 14 +-
.../Entities/Objects/Misc/kudzu.yml | 2 +-
.../Entities/Objects/Misc/space_cash.yml | 5 +-
.../Objects/Specific/Janitorial/janitor.yml | 22 +--
.../Objects/Specific/Janitorial/soap.yml | 4 +-
.../Objects/Specific/Janitorial/spray.yml | 5 +-
.../Objects/Specific/Medical/morgue.yml | 2 +-
.../Objects/Specific/Security/barrier.yml | 15 +-
.../Xenoarchaeology/artifact_equipment.yml | 6 +-
.../Specific/Xenoarchaeology/artifacts.yml | 16 +--
.../Objects/Specific/rehydrateable.yml | 26 ++--
.../Entities/Objects/Tools/bucket.yml | 10 --
.../Entities/Objects/Vehicles/buckleable.yml | 5 +-
.../Weapons/Guns/Projectiles/meteors.yml | 9 +-
.../Weapons/Guns/Projectiles/projectiles.yml | 20 ++-
.../Entities/Objects/Weapons/security.yml | 8 +-
.../Prototypes/Entities/Objects/base_item.yml | 5 +-
.../Structures/Decoration/banners.yml | 11 +-
.../Dispensers/base_structuredispensers.yml | 10 +-
.../Entities/Structures/Dispensers/booze.yml | 15 +-
.../Entities/Structures/Dispensers/soda.yml | 13 --
.../Structures/Doors/Airlocks/airlocks.yml | 10 +-
.../Structures/Doors/Airlocks/assembly.yml | 7 +-
.../Doors/Airlocks/base_structureairlocks.yml | 8 +-
.../Structures/Doors/Firelocks/firelock.yml | 37 +++--
.../Structures/Doors/Firelocks/frame.yml | 10 +-
.../Doors/MaterialDoors/material_doors.yml | 8 +-
.../Structures/Doors/Shutter/shutters.yml | 17 +--
.../Structures/Doors/Windoors/assembly.yml | 2 +-
.../Doors/Windoors/base_structurewindoors.yml | 9 +-
.../Furniture/Tables/base_structuretables.yml | 8 +-
.../Structures/Furniture/Tables/tables.yml | 15 +-
.../Entities/Structures/Furniture/beds.yml | 4 +-
.../Entities/Structures/Furniture/carpets.yml | 13 --
.../Entities/Structures/Furniture/chairs.yml | 7 +-
.../Structures/Furniture/instruments.yml | 23 ++--
.../Structures/Furniture/memorial.yml | 8 +-
.../Structures/Furniture/potted_plants.yml | 18 +--
.../Structures/Furniture/rollerbeds.yml | 15 +-
.../Machines/Computers/computers.yml | 8 +-
.../Structures/Machines/Computers/frame.yml | 9 +-
.../Machines/base_structuremachines.yml | 9 +-
.../Structures/Machines/chem_master.yml | 7 +-
.../Structures/Machines/cloning_machine.yml | 9 +-
.../Entities/Structures/Machines/frame.yml | 28 ++--
.../Structures/Machines/gravity_generator.yml | 9 +-
.../Entities/Structures/Machines/lathe.yml | 18 +--
.../Structures/Machines/medical_scanner.yml | 9 +-
.../Structures/Machines/microwave.yml | 8 +-
.../Structures/Machines/reagent_grinder.yml | 10 +-
.../Entities/Structures/Machines/recycler.yml | 12 +-
.../Structures/Machines/seed_extractor.yml | 9 +-
.../Structures/Machines/stasisbed.yml | 4 +-
.../Structures/Machines/traitordm.yml | 7 +-
.../Structures/Machines/vending_machines.yml | 9 +-
.../Structures/Piping/Atmospherics/pipes.yml | 28 +---
.../Disposal/high_pressure_machine_frame.yml | 21 ++-
.../Structures/Piping/Disposal/pipes.yml | 77 +++++------
.../Structures/Piping/Disposal/units.yml | 9 +-
.../PA/base_particleaccelerator.yml | 9 +-
.../Power/Generation/PA/particles.yml | 8 +-
.../Generation/Singularity/collector.yml | 13 +-
.../Generation/Singularity/containment.yml | 45 ++----
.../Power/Generation/Singularity/emitter.yml | 13 +-
.../Generation/Singularity/generator.yml | 4 +-
.../Structures/Power/Generation/ame.yml | 35 ++---
.../Power/Generation/generators.yml | 22 +--
.../Structures/Power/Generation/solar.yml | 26 +---
.../Entities/Structures/Power/apc.yml | 8 +-
.../Structures/Power/cable_terminal.yml | 8 --
.../Entities/Structures/Power/cables.yml | 8 --
.../Entities/Structures/Power/debug_power.yml | 8 +-
.../Structures/Power/saltern_power.yml | 1 -
.../Entities/Structures/Power/substation.yml | 10 --
.../Storage/Canisters/gas_canisters.yml | 38 +++--
.../Storage/Closets/base_structureclosets.yml | 9 +-
.../Storage/Crates/base_structurecrates.yml | 18 +--
.../Structures/Storage/Crates/crates.yml | 9 +-
.../Storage/Tanks/base_structuretanks.yml | 13 +-
.../Entities/Structures/Storage/morgue.yml | 39 ++----
.../Entities/Structures/Storage/storage.yml | 9 +-
.../Wallmounts/Signs/atmos_plaque.yml | 4 +-
.../Structures/Wallmounts/Signs/bar_sign.yml | 9 --
.../Structures/Wallmounts/air_alarm.yml | 7 -
.../Structures/Wallmounts/lighting.yml | 21 +--
.../Entities/Structures/Walls/asteroid.yml | 9 +-
.../Entities/Structures/Walls/barricades.yml | 8 +-
.../Structures/Walls/base_structurewalls.yml | 11 +-
.../Entities/Structures/Walls/girder.yml | 9 +-
.../Entities/Structures/Walls/grille.yml | 13 +-
.../Entities/Structures/Walls/railing.yml | 28 ++--
.../Entities/Structures/Walls/walls.yml | 18 +--
.../Entities/Structures/Windows/window.yml | 16 +--
.../Entities/Structures/base_structure.yml | 18 +--
.../Entities/Structures/cargo_telepad.yml | 6 +-
.../Entities/Structures/catwalk.yml | 12 +-
.../Entities/Structures/hydro_tray.yml | 4 +-
.../Entities/Structures/lighting_ground.yml | 9 +-
.../Entities/Structures/plastic_flaps.yml | 14 +-
.../Prototypes/Entities/Structures/soil.yml | 12 +-
141 files changed, 750 insertions(+), 1533 deletions(-)
diff --git a/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs b/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs
index a742715f7e..ac5e2589da 100644
--- a/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs
+++ b/Content.IntegrationTests/Tests/Utility/EntitySystemExtensionsTest.cs
@@ -77,12 +77,12 @@ namespace Content.IntegrationTests.Tests.Utility
Assert.Null(entity);
// Other layers are fine
- Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MobImpassable));
- Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MobImpassable, out entity));
+ Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MidImpassable));
+ Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MidImpassable, out entity));
Assert.NotNull(entity);
- Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MobImpassable));
- Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MobImpassable, out entity));
+ Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MidImpassable));
+ Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MidImpassable, out entity));
Assert.NotNull(entity);
});
}
diff --git a/Content.Server/AI/Pathfinding/PathfindingSystem.cs b/Content.Server/AI/Pathfinding/PathfindingSystem.cs
index 938c63a368..c8b264fe22 100644
--- a/Content.Server/AI/Pathfinding/PathfindingSystem.cs
+++ b/Content.Server/AI/Pathfinding/PathfindingSystem.cs
@@ -48,9 +48,9 @@ namespace Content.Server.AI.Pathfinding
public const int TrackedCollisionLayers = (int)
(CollisionGroup.Impassable |
- CollisionGroup.MobImpassable |
- CollisionGroup.SmallImpassable |
- CollisionGroup.VaultImpassable);
+ CollisionGroup.MidImpassable |
+ CollisionGroup.LowImpassable |
+ CollisionGroup.HighImpassable);
///
/// Ask for the pathfinder to gimme somethin
diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs
index 9e991ead04..263f81c5b7 100644
--- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs
+++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.HighPressureDelta.cs
@@ -60,7 +60,7 @@ namespace Content.Server.Atmos.EntitySystems
{
foreach (var (_, fixture) in fixtures.Fixtures)
{
- _physics.AddCollisionMask(fixtures, fixture, (int) CollisionGroup.VaultImpassable);
+ _physics.AddCollisionMask(fixtures, fixture, (int) CollisionGroup.TableLayer);
}
}
}
@@ -79,7 +79,7 @@ namespace Content.Server.Atmos.EntitySystems
foreach (var fixture in fixtures.Fixtures.Values)
{
- _physics.RemoveCollisionMask(fixtures, fixture, (int) CollisionGroup.VaultImpassable);
+ _physics.RemoveCollisionMask(fixtures, fixture, (int) CollisionGroup.TableLayer);
}
// TODO: Make them dynamic type? Ehh but they still want movement so uhh make it non-predicted like weightless?
diff --git a/Content.Server/Climbing/ClimbSystem.cs b/Content.Server/Climbing/ClimbSystem.cs
index aa48714f70..d703c293ad 100644
--- a/Content.Server/Climbing/ClimbSystem.cs
+++ b/Content.Server/Climbing/ClimbSystem.cs
@@ -35,7 +35,7 @@ public sealed class ClimbSystem : SharedClimbSystem
[Dependency] private readonly StunSystem _stunSystem = default!;
private const string ClimbingFixtureName = "climb";
- private const int ClimbingCollisionGroup = (int) CollisionGroup.VaultImpassable;
+ private const int ClimbingCollisionGroup = (int) CollisionGroup.TableLayer;
private readonly Dictionary> _fixtureRemoveQueue = new();
diff --git a/Content.Server/Explosion/EntitySystems/TriggerSystem.Proximity.cs b/Content.Server/Explosion/EntitySystems/TriggerSystem.Proximity.cs
index 95181875ad..d2f0c601d5 100644
--- a/Content.Server/Explosion/EntitySystems/TriggerSystem.Proximity.cs
+++ b/Content.Server/Explosion/EntitySystems/TriggerSystem.Proximity.cs
@@ -62,7 +62,7 @@ public sealed partial class TriggerSystem
_fixtures.TryCreateFixture(body, new Fixture(body, component.Shape)
{
// TODO: Should probably have these settable via datafield but I'm lazy and it's a pain
- CollisionLayer = (int) (CollisionGroup.MobImpassable | CollisionGroup.SmallImpassable | CollisionGroup.VaultImpassable), Hard = false, ID = TriggerOnProximityComponent.FixtureID
+ CollisionLayer = (int) (CollisionGroup.MidImpassable | CollisionGroup.LowImpassable | CollisionGroup.HighImpassable), Hard = false, ID = TriggerOnProximityComponent.FixtureID
});
}
diff --git a/Content.Server/Morgue/Components/MorgueEntityStorageComponent.cs b/Content.Server/Morgue/Components/MorgueEntityStorageComponent.cs
index 7dceca810d..880c5b856c 100644
--- a/Content.Server/Morgue/Components/MorgueEntityStorageComponent.cs
+++ b/Content.Server/Morgue/Components/MorgueEntityStorageComponent.cs
@@ -26,6 +26,8 @@ namespace Content.Server.Morgue.Components
{
[Dependency] private readonly IEntityManager _entMan = default!;
+ private const CollisionGroup TrayCanOpenMask = CollisionGroup.Impassable | CollisionGroup.MidImpassable;
+
[ViewVariables(VVAccess.ReadWrite)]
[DataField("trayPrototype", customTypeSerializer:typeof(PrototypeIdSerializer))]
private string? _trayPrototypeId;
@@ -69,7 +71,7 @@ namespace Content.Server.Morgue.Components
{
if (!EntitySystem.Get().InRangeUnobstructed(Owner,
_entMan.GetComponent(Owner).Coordinates.Offset(_entMan.GetComponent(Owner).LocalRotation.GetCardinalDir()),
- collisionMask: CollisionGroup.Impassable | CollisionGroup.VaultImpassable
+ collisionMask: TrayCanOpenMask
))
{
if (!silent)
diff --git a/Content.Server/Shuttles/EntitySystems/ThrusterSystem.cs b/Content.Server/Shuttles/EntitySystems/ThrusterSystem.cs
index 55a984131a..39b7f9000e 100644
--- a/Content.Server/Shuttles/EntitySystems/ThrusterSystem.cs
+++ b/Content.Server/Shuttles/EntitySystems/ThrusterSystem.cs
@@ -271,7 +271,7 @@ namespace Content.Server.Shuttles.EntitySystems
{
ID = BurnFixture,
Hard = false,
- CollisionLayer = (int) CollisionGroup.MobImpassable
+ CollisionLayer = (int) CollisionGroup.FullTileMask
};
_fixtureSystem.TryCreateFixture(physicsComponent, fixture);
diff --git a/Content.Server/Storage/Components/EntityStorageComponent.cs b/Content.Server/Storage/Components/EntityStorageComponent.cs
index 2895c0a849..22f8b3e633 100644
--- a/Content.Server/Storage/Components/EntityStorageComponent.cs
+++ b/Content.Server/Storage/Components/EntityStorageComponent.cs
@@ -42,9 +42,9 @@ namespace Content.Server.Storage.Components
/// Collision masks that get removed when the storage gets opened.
///
private const int MasksToRemove = (int) (
- CollisionGroup.MobImpassable |
- CollisionGroup.VaultImpassable |
- CollisionGroup.SmallImpassable);
+ CollisionGroup.MidImpassable |
+ CollisionGroup.HighImpassable |
+ CollisionGroup.LowImpassable);
///
/// Collision masks that were removed from ANY layer when the storage was opened;
diff --git a/Content.Shared/Physics/CollisionGroup.cs b/Content.Shared/Physics/CollisionGroup.cs
index 537133d28d..8672b4054a 100644
--- a/Content.Shared/Physics/CollisionGroup.cs
+++ b/Content.Shared/Physics/CollisionGroup.cs
@@ -1,35 +1,62 @@
-using System;
using JetBrains.Annotations;
using Robust.Shared.Map;
using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Serialization;
-using RobustPhysics = Robust.Shared.Physics;
-namespace Content.Shared.Physics
+namespace Content.Shared.Physics;
+
+///
+/// Defined collision groups for the physics system.
+///
+[Flags, PublicAPI]
+[FlagsFor(typeof(CollisionLayer)), FlagsFor(typeof(CollisionMask))]
+public enum CollisionGroup
{
- ///
- /// Defined collision groups for the physics system.
- ///
- [Flags, PublicAPI]
- [FlagsFor(typeof(CollisionLayer)), FlagsFor(typeof(CollisionMask))]
- public enum CollisionGroup
- {
- None = 0,
- Opaque = 1 << 0, // 1 Blocks light, for lasers
- Impassable = 1 << 1, // 2 Walls, objects impassable by any means
- MobImpassable = 1 << 2, // 4 Mobs, players, crabs, etc
- VaultImpassable = 1 << 3, // 8 Things that cannot be jumped over, not half walls or tables
- SmallImpassable = 1 << 4, // 16 Things a smaller object - a cat, a crab - can't go through - a wall, but not a computer terminal or a table
- GhostImpassable = 1 << 5, // 32 Things impassible by ghosts/observers, ie blessed tiles or forcefields
- Underplating = 1 << 6, // 64 Things that are under plating
- [Obsolete("Don't use Passable for collision.")]
- // Collision is for what things collide, not what they "don't collide with" so this makes 0 logical sense.
- Passable = 1 << 7, // 128 Things that are passable.
- MapGrid = MapGridHelpers.CollisionGroup, // Map grids, like shuttles. This is the actual grid itself, not the walls or other entities connected to the grid.
+ None = 0,
+ Opaque = 1 << 0, // 1 Blocks light, can be hit by lasers
+ Impassable = 1 << 1, // 2 Walls, objects impassable by any means
+ MidImpassable = 1 << 2, // 4 Mobs, players, crabs, etc
+ HighImpassable = 1 << 3, // 8 Things on top of tables and things that block tall/large mobs.
+ LowImpassable = 1 << 4, // 16 For things that can fit under a table or squeeze under an airlock
+ GhostImpassable = 1 << 5, // 32 Things impassible by ghosts/observers, ie blessed tiles or forcefields
+ BulletImpassable = 1 << 6, // 64 Can be hit by bullets
- MobMask = Impassable | MobImpassable | VaultImpassable | SmallImpassable,
- ThrownItem = VaultImpassable,
- // 32 possible groups
- AllMask = -1,
- }
+ MapGrid = MapGridHelpers.CollisionGroup, // Map grids, like shuttles. This is the actual grid itself, not the walls or other entities connected to the grid.
+
+ // 32 possible groups
+ AllMask = -1,
+
+ MobMask = Impassable | MidImpassable | LowImpassable,
+ MobLayer = Opaque | BulletImpassable,
+ SmallMobMask = Impassable | LowImpassable,
+ SmallMobLayer = Opaque | BulletImpassable,
+ FlyingMobMask = Impassable,
+ FlyingMobLayer = Opaque | BulletImpassable,
+
+ LargeMobMask = Impassable | HighImpassable | MidImpassable | LowImpassable,
+ LargeMobLayer = Opaque | HighImpassable | MidImpassable | LowImpassable | BulletImpassable,
+
+ MachineMask = Impassable | MidImpassable | LowImpassable,
+ MachineLayer = Opaque | MidImpassable | LowImpassable | BulletImpassable,
+
+ TableMask = Impassable | MidImpassable,
+ TableLayer = MidImpassable,
+
+ TabletopMachineMask = Impassable | HighImpassable,
+ TabletopMachineLayer = Opaque | HighImpassable | BulletImpassable,
+
+ GlassAirlockLayer = HighImpassable | MidImpassable | BulletImpassable,
+ AirlockLayer = Opaque | GlassAirlockLayer,
+
+ HumanoidBlockLayer = HighImpassable | MidImpassable,
+
+ SlipLayer = MidImpassable | LowImpassable,
+ ItemMask = Impassable | HighImpassable,
+ ThrownItem = Impassable | HighImpassable,
+ WallLayer = Opaque | Impassable | HighImpassable | MidImpassable | LowImpassable | BulletImpassable,
+ GlassLayer = Impassable | HighImpassable | MidImpassable | LowImpassable | BulletImpassable,
+ HalfWallLayer = MidImpassable | LowImpassable,
+ FullTileMask = Impassable | HighImpassable | MidImpassable | LowImpassable,
+
+ SubfloorMask = Impassable | LowImpassable
}
diff --git a/Content.Shared/Standing/StandingStateComponent.cs b/Content.Shared/Standing/StandingStateComponent.cs
index dee8db31da..d86ecddcf8 100644
--- a/Content.Shared/Standing/StandingStateComponent.cs
+++ b/Content.Shared/Standing/StandingStateComponent.cs
@@ -17,11 +17,11 @@ namespace Content.Shared.Standing
public bool Standing { get; set; } = true;
///
- /// List of fixtures that had vault-impassable prior to an entity being downed. Required when re-adding the
- /// collision mask.
+ /// List of fixtures that had their collision mask changed when the entity was downed.
+ /// Required for re-adding the collision mask.
///
- [DataField("vaultImpassableFixtures")]
- public List VaultImpassableFixtures = new();
+ [DataField("changedFixtures")]
+ public List ChangedFixtures = new();
public override ComponentState GetComponentState()
{
diff --git a/Content.Shared/Standing/StandingStateSystem.cs b/Content.Shared/Standing/StandingStateSystem.cs
index b1a58b44ec..057dfc6199 100644
--- a/Content.Shared/Standing/StandingStateSystem.cs
+++ b/Content.Shared/Standing/StandingStateSystem.cs
@@ -12,6 +12,9 @@ namespace Content.Shared.Standing
public sealed class StandingStateSystem : EntitySystem
{
[Dependency] private readonly IGameTiming _gameTiming = default!;
+
+ // If StandingCollisionLayer value is ever changed to more than one layer, the logic needs to be edited.
+ private const int StandingCollisionLayer = (int) CollisionGroup.MidImpassable;
public bool IsDown(EntityUid uid, StandingStateComponent? standingState = null)
{
@@ -61,15 +64,16 @@ namespace Content.Shared.Standing
// Seemed like the best place to put it
appearance?.SetData(RotationVisuals.RotationState, RotationState.Horizontal);
+ // Change collision masks to allow going under certain entities like flaps and tables
if (TryComp(uid, out FixturesComponent? fixtureComponent))
{
foreach (var (key, fixture) in fixtureComponent.Fixtures)
{
- if ((fixture.CollisionMask & (int) CollisionGroup.VaultImpassable) == 0)
+ if ((fixture.CollisionMask & StandingCollisionLayer) == 0)
continue;
- standingState.VaultImpassableFixtures.Add(key);
- fixture.CollisionMask &= ~(int) CollisionGroup.VaultImpassable;
+ standingState.ChangedFixtures.Add(key);
+ fixture.CollisionMask &= ~StandingCollisionLayer;
}
}
@@ -111,13 +115,13 @@ namespace Content.Shared.Standing
if (TryComp(uid, out FixturesComponent? fixtureComponent))
{
- foreach (var key in standingState.VaultImpassableFixtures)
+ foreach (var key in standingState.ChangedFixtures)
{
if (fixtureComponent.Fixtures.TryGetValue(key, out var fixture))
- fixture.CollisionMask |= (int) CollisionGroup.VaultImpassable;
+ fixture.CollisionMask |= StandingCollisionLayer;
}
}
- standingState.VaultImpassableFixtures.Clear();
+ standingState.ChangedFixtures.Clear();
return true;
}
diff --git a/Resources/Maps/Salvage/tick-colony.yml b/Resources/Maps/Salvage/tick-colony.yml
index 234763c8e5..1ffb596132 100644
--- a/Resources/Maps/Salvage/tick-colony.yml
+++ b/Resources/Maps/Salvage/tick-colony.yml
@@ -704,8 +704,8 @@ entities:
radius: 0.35
mask:
- Impassable
- - MobImpassable
- - SmallImpassable
+ - MidImpassable
+ - LowImpassable
layer:
- Opaque
mass: 70
@@ -956,8 +956,8 @@ entities:
radius: 0.35
mask:
- Impassable
- - MobImpassable
- - SmallImpassable
+ - MidImpassable
+ - LowImpassable
layer:
- Opaque
mass: 70
@@ -1208,8 +1208,8 @@ entities:
radius: 0.35
mask:
- Impassable
- - MobImpassable
- - SmallImpassable
+ - MidImpassable
+ - LowImpassable
layer:
- Opaque
mass: 70
diff --git a/Resources/Maps/atlas.yml b/Resources/Maps/atlas.yml
index 0c1b74617f..97ff0efdb5 100644
--- a/Resources/Maps/atlas.yml
+++ b/Resources/Maps/atlas.yml
@@ -9898,23 +9898,6 @@ entities:
- pos: 26.5,6.5
parent: 30
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -13813,23 +13796,6 @@ entities:
- pos: 13.5,18.5
parent: 30
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -18755,23 +18721,6 @@ entities:
- pos: -2.5,24.5
parent: 30
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml
index 259f4a1d55..906e930597 100644
--- a/Resources/Maps/bagel.yml
+++ b/Resources/Maps/bagel.yml
@@ -39982,23 +39982,6 @@ entities:
- pos: -27.5,2.5
parent: 59
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -54822,23 +54805,6 @@ entities:
- containers:
- EntityStorageComponent
type: Construction
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.4,-0.4
- - 0.4,0.29
- - -0.4,0.29
- - -0.4,-0.4
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 25
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -94686,23 +94652,6 @@ entities:
- pos: 10.5,-68.5
parent: 59
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/barratry.yml b/Resources/Maps/barratry.yml
index e3de012180..3c44e447c0 100644
--- a/Resources/Maps/barratry.yml
+++ b/Resources/Maps/barratry.yml
@@ -110524,23 +110524,6 @@ entities:
- pos: -55.5,5.5
parent: 105
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -130394,23 +130377,6 @@ entities:
- pos: 8.5,12.5
parent: 105
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/delta.yml b/Resources/Maps/delta.yml
index 60399255a4..9d58d8cfb4 100644
--- a/Resources/Maps/delta.yml
+++ b/Resources/Maps/delta.yml
@@ -93087,23 +93087,6 @@ entities:
- pos: -56.5,17.5
parent: 49
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/infiltrator.yml b/Resources/Maps/infiltrator.yml
index 6c8cd45f3c..4cb7a2fe95 100644
--- a/Resources/Maps/infiltrator.yml
+++ b/Resources/Maps/infiltrator.yml
@@ -7271,36 +7271,6 @@ entities:
type: Transform
- locked: False
type: Lock
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- - isPlaceable: False
- type: PlaceableSurface
- - containers:
- EntityStorageComponent: !type:Container
- ents:
- - 701
- - 702
- - 703
- - 720
- - 714
- - 751
- - 711
- type: ContainerContainer
- uid: 693
type: TableWood
components:
@@ -7327,23 +7297,6 @@ entities:
type: Transform
- locked: False
type: Lock
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -7364,23 +7317,6 @@ entities:
type: Transform
- locked: False
type: Lock
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -7401,23 +7337,6 @@ entities:
type: Transform
- locked: False
type: Lock
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/marathon.yml b/Resources/Maps/marathon.yml
index 307a5bcd37..4986c57d93 100644
--- a/Resources/Maps/marathon.yml
+++ b/Resources/Maps/marathon.yml
@@ -35461,23 +35461,6 @@ entities:
- pos: -38.5,56.5
parent: 17
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
@@ -197474,23 +197457,6 @@ entities:
- pos: -27.5,-30.5
parent: 17
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/moose.yml b/Resources/Maps/moose.yml
index e7641ecac4..2a704b9891 100644
--- a/Resources/Maps/moose.yml
+++ b/Resources/Maps/moose.yml
@@ -88173,23 +88173,6 @@ entities:
- pos: -0.5,-0.5
parent: 8644
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml
index 9f9adc88bc..1ae63c779a 100644
--- a/Resources/Maps/saltern.yml
+++ b/Resources/Maps/saltern.yml
@@ -823,23 +823,6 @@ entities:
- pos: -11.5,21.5
parent: 854
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Maps/splitstation.yml b/Resources/Maps/splitstation.yml
index bfd207e0f9..ba1483f6ee 100644
--- a/Resources/Maps/splitstation.yml
+++ b/Resources/Maps/splitstation.yml
@@ -226804,23 +226804,6 @@ entities:
- pos: 21.5,-29.5
parent: 71
type: Transform
- - fixtures:
- - shape: !type:PolygonShape
- vertices:
- - 0.25,-0.48
- - 0.25,0.48
- - -0.25,0.48
- - -0.25,-0.48
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - MobImpassable
- - ThrownItem
- - SmallImpassable
- - Opaque
- mass: 70
- type: Fixtures
- isPlaceable: False
type: PlaceableSurface
- containers:
diff --git a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml
index 7453919561..23196f68f9 100644
--- a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml
+++ b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml
@@ -48,9 +48,11 @@
- hard: false
shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
+ bounds: "-0.4,-0.4,0.4,0.4"
+ mask:
+ - ItemMask
layer:
- - MobImpassable
+ - SlipLayer
- type: FoamSolutionAreaEffect
- type: SolutionContainerManager
solutions:
@@ -70,15 +72,6 @@
layers:
- state: mfoam
map: ["enum.FoamVisualLayers.Base"]
- - type: Physics
- - type: Fixtures
- fixtures:
- - hard: true
- shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
- layer:
- - MobImpassable
- type: Appearance
visuals:
- type: FoamVisualizer
@@ -98,15 +91,6 @@
layers:
- state: mfoam
map: ["enum.FoamVisualLayers.Base"]
- - type: Physics
- - type: Fixtures
- fixtures:
- - hard: true
- shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
- layer:
- - MobImpassable
- type: Appearance
visuals:
- type: FoamVisualizer
@@ -138,11 +122,9 @@
- shape:
!type:PhysShapeAabb {}
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
+ mask:
+ - WallLayer
- type: Occluder
sizeX: 32
sizeY: 32
diff --git a/Resources/Prototypes/Entities/Effects/puddle.yml b/Resources/Prototypes/Entities/Effects/puddle.yml
index d8ce7546d0..4ed14b030d 100644
--- a/Resources/Prototypes/Entities/Effects/puddle.yml
+++ b/Resources/Prototypes/Entities/Effects/puddle.yml
@@ -19,11 +19,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
- layer:
- - SmallImpassable
+ bounds: "-0.4,-0.4,0.4,0.4"
mask:
- - SmallImpassable
+ - ItemMask
+ layer:
+ - SlipLayer
hard: false
- type: Appearance
visuals:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
index ee6dd68e20..60493ccc92 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
@@ -26,11 +26,9 @@
radius: 0.25
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - FlyingMobMask
layer:
- - Opaque
+ - FlyingMobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -90,11 +88,9 @@
radius: 0.1
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - FlyingMobMask
layer:
- - Opaque
+ - FlyingMobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
@@ -291,11 +287,9 @@
radius: 0.2
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - FlyingMobMask
layer:
- - Opaque
+ - FlyingMobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
@@ -341,11 +335,9 @@
radius: 0.40
mass: 45
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -400,11 +392,9 @@
radius: 0.35
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets!?
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -518,11 +508,9 @@
radius: 0.48
mass: 20
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -554,16 +542,14 @@
- type: Physics
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.25
- mass: 60
- mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
- layer:
- - Opaque
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.25
+ mass: 60
+ mask:
+ - MobMask
+ layer:
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -686,10 +672,9 @@
radius: 0.2
mass: 10
mask:
- - SmallImpassable
- - MobImpassable
+ - SmallMobMask
layer:
- - Opaque
+ - SmallMobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
@@ -829,11 +814,9 @@
radius: 0.2
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -879,11 +862,9 @@
radius: 0.2
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -924,11 +905,9 @@
radius: 0.2
mass: 2
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - SmallMobMask
layer:
- - Opaque
+ - SmallMobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -972,11 +951,9 @@
radius: 0.25
mass: 5
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - FlyingMobMask
layer:
- - Opaque
+ - FlyingMobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1017,11 +994,9 @@
radius: 0.25
mass: 10
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1068,11 +1043,9 @@
radius: 0.25
mass: 10
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1125,11 +1098,9 @@
radius: 0.25
mass: 8
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - SmallMobMask
layer:
- - Opaque
+ - SmallMobLayer
- type: Appearance
visuals:
- type: RotationVisualizer
@@ -1175,11 +1146,9 @@
radius: 0.35
mass: 25
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1240,12 +1209,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1299,12 +1265,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -1358,12 +1321,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/bear.yml b/Resources/Prototypes/Entities/Mobs/NPCs/bear.yml
index 4ea39d4605..c503b57a87 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/bear.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/bear.yml
@@ -24,11 +24,9 @@
radius: 0.5
mass: 100
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: MovementIgnoreGravity
- type: MobState
thresholds:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
index 7cb9bfb484..1be269c2c0 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
@@ -25,11 +25,9 @@
radius: 0.40
mass: 20
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
@@ -107,10 +105,8 @@
radius: 0.40
mass: 5
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - Opaque
- type: GhostTakeoverAvailable
name: holocarp
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
index ea749401e4..268f9a13e5 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml
@@ -27,16 +27,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.35,-0.35,0.35,0.35"
+ bounds: "-0.35,-0.35,0.35,0.35"
mass: 100
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
- - MobImpassable
+ - MachineLayer
- type: CharacterInfo
- type: HumanoidAppearance
- type: AnimationPlayer
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
index faf2ed5ad3..1303dab6d3 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
@@ -21,11 +21,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -224,11 +222,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -376,11 +372,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -421,12 +415,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -478,12 +469,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -524,12 +512,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
@@ -604,12 +589,9 @@
radius: 0.35
mass: 10
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
index 3ee9c4c53b..0a2a025e68 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
@@ -52,12 +52,9 @@
radius: 0.35
mass: 20
mask:
- - Impassable
- - MobImpassable #Bullets?!
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: SolutionContainerManager
- type: Bloodstream
bloodlossDamage:
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
index 353e0c3950..2228c823a5 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/spacetick.yml
@@ -29,11 +29,9 @@
radius: 0.20
mass: 2.5
mask:
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - SmallMobMask
layer:
- - Opaque
+ - SmallMobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
index 064b85f9d8..d5ed41c9af 100644
--- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
+++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml
@@ -34,12 +34,9 @@
radius: 0.35
mass: 120
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: MobState
thresholds:
0: !type:NormalMobState {}
diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
index 990b62b765..02bff83aeb 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
@@ -29,7 +29,7 @@
bounds: "-0.35,-0.35,0.35,0.35"
mass: 5
mask:
- - GhostImpassable
+ - GhostImpassable
- type: Body
template: AGhostTemplate
preset: HumanPreset
diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
index ea5394dbab..ed944f8e51 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml
@@ -43,9 +43,9 @@
radius: 0.35
mass: 10
mask:
- - VaultImpassable
+ - FlyingMobMask
layer:
- - Opaque
+ - FlyingMobLayer
- type: Damageable
damageContainer: Biological
- type: MobState
diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml
index fc2f8e3d3b..9a962092b1 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml
@@ -16,7 +16,7 @@
fixtures:
- shape:
!type:PhysShapeCircle
- radius: 0.35
+ radius: 0.35
mass: 5
mask:
- GhostImpassable
diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
index fdf9f4d312..bf71862c3e 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
@@ -36,12 +36,9 @@
radius: 0.35
mass: 20
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: MovementSpeedModifier
baseWalkSpeed : 4
baseSprintSpeed : 3
@@ -135,10 +132,9 @@
radius: 0.35
mass: 20
mask:
- - SmallImpassable
- - MobImpassable
+ - SmallMobMask
layer:
- - Opaque
+ - SmallMobLayer
- type: Appearance
visuals:
- type: GenericEnumVisualizer
@@ -215,12 +211,9 @@
radius: 1
mass: 500
mask:
- - SmallImpassable
- - MobImpassable
- - VaultImpassable
- - Impassable
+ - LargeMobMask
layer:
- - Opaque
+ - LargeMobLayer
- type: Appearance
visuals:
- type: DamageStateVisualizer
diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml
index 079ebe8443..5309c1c982 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/human.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml
@@ -191,12 +191,9 @@
mass: 70
restitution: 0.0
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: AtmosExposed
- type: Flammable
fireSpread: true
@@ -421,16 +418,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.35,-0.35,0.35,0.35"
+ bounds: "-0.35,-0.35,0.35,0.35"
mass: 70
restitution: 0.0
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: HumanoidAppearance
- type: Body
template: HumanoidTemplate
diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml
index aa081b9032..2c61b625fe 100644
--- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml
+++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml
@@ -191,13 +191,13 @@
id: "slips"
hard: false
layer:
- - SmallImpassable
+ - SlipLayer
- shape:
!type:PhysShapeAabb
bounds: "-0.2,-0.2,0.2,0.2"
mass: 5
mask:
- - SmallImpassable
+ - ItemMask
- type: Tag
tags:
- Recyclable
diff --git a/Resources/Prototypes/Entities/Objects/Decoration/flora.yml b/Resources/Prototypes/Entities/Objects/Decoration/flora.yml
index f77c1df792..e5945e1c8a 100644
--- a/Resources/Prototypes/Entities/Objects/Decoration/flora.yml
+++ b/Resources/Prototypes/Entities/Objects/Decoration/flora.yml
@@ -16,8 +16,8 @@
radius: 0.4
mass: 500
layer:
+ - HalfWallLayer
- Opaque
- - VaultImpassable
- type: Climbable
- type: entity
@@ -36,11 +36,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.35,-1.3,0.35,-0.5"
+ bounds: "-0.35,-1.3,0.35,-0.5"
mass: 500
layer:
- - Opaque
- - Impassable
+ - WallLayer
- type: entity
parent: BaseTree
@@ -53,11 +52,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.1,-1.0,0.1,-0.4"
+ bounds: "-0.1,-1.0,0.1,-0.4"
mass: 500
layer:
- - Opaque
- - Impassable
+ - WallLayer
- type: entity
parent: BaseTree
@@ -70,11 +68,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.18,-1.9,0.18,-1.2"
+ bounds: "-0.18,-1.9,0.18,-1.2"
mass: 500
layer:
- - Opaque
- - Impassable
+ - WallLayer
- type: entity
parent: BaseTree
@@ -87,11 +84,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.1,-1.5,0.1,-0.8"
+ bounds: "-0.1,-1.5,0.1,-0.8"
mass: 500
layer:
- - Opaque
- - Impassable
+ - WallLayer
- type: entity
parent: BaseRock
@@ -312,11 +308,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.8,-1.5,0.8,-0.8"
+ bounds: "-0.8,-1.5,0.8,-0.8"
mass: 500
layer:
- - Opaque
- - Impassable
+ - WallLayer
- type: entity
parent: BaseTreeConifer
diff --git a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
index e282f9abbf..39997c6a4f 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
@@ -4,47 +4,47 @@
name: nuclear fission explosive
description: You probably shouldn't stick around to see if this is armed.
components:
- - type: Transform
- anchored: true
- - type: Sprite
- sprite: Objects/Devices/nuke.rsi
- netsync: false
- state: nuclearbomb_base
- - type: Physics
- bodyType: Dynamic
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.45
- mass: 150
- layer:
- - SmallImpassable
- mask:
- - VaultImpassable
- - type: Nuke
- # ~50 tile radius in open space
- # close to defaulkt max cap.
- explosionType: Default
- maxIntensity: 100
- intensitySlope: 5
- totalIntensity: 500000
- diskSlot:
- name: Disk
- insertSound:
- path: /Audio/Machines/terminal_insert_disc.ogg
- ejectSound:
- path: /Audio/Machines/terminal_insert_disc.ogg
- whitelist:
- components:
- - NukeDisk
- - type: InteractionOutline
- - type: ActivatableUI
- key: enum.NukeUiKey.Key
- - type: UserInterface
- interfaces:
- - key: enum.NukeUiKey.Key
- type: NukeBoundUserInterface
+ - type: Transform
+ anchored: true
+ - type: Sprite
+ sprite: Objects/Devices/nuke.rsi
+ netsync: false
+ state: nuclearbomb_base
+ - type: Physics
+ bodyType: Dynamic
+ - type: Fixtures
+ fixtures:
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.45
+ mass: 150
+ mask:
+ - MachineMask
+ layer:
+ - HalfWallLayer
+ - type: Nuke
+ # ~50 tile radius in open space
+ # close to defaulkt max cap.
+ explosionType: Default
+ maxIntensity: 100
+ intensitySlope: 5
+ totalIntensity: 500000
+ diskSlot:
+ name: Disk
+ insertSound:
+ path: /Audio/Machines/terminal_insert_disc.ogg
+ ejectSound:
+ path: /Audio/Machines/terminal_insert_disc.ogg
+ whitelist:
+ components:
+ - NukeDisk
+ - type: InteractionOutline
+ - type: ActivatableUI
+ key: enum.NukeUiKey.Key
+ - type: UserInterface
+ interfaces:
+ - key: enum.NukeUiKey.Key
+ type: NukeBoundUserInterface
- type: entity
parent: StorageTank
@@ -53,27 +53,27 @@
suffix: keg
description: You probably shouldn't stick around to see if this is armed. It has a tap on the side.
components:
- - type: Sprite
- sprite: Objects/Devices/nuke.rsi
- netsync: false
- state: nuclearbomb_base
- - type: Physics
- bodyType: Dynamic
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.45
- mass: 150
- layer:
- - SmallImpassable
- mask:
- - VaultImpassable
- - type: SolutionContainerManager
- solutions:
- tank:
- reagents:
- - ReagentId: NuclearCola
- Quantity: 3000
- - type: ReagentTank
- transferAmount: 100
+ - type: Sprite
+ sprite: Objects/Devices/nuke.rsi
+ netsync: false
+ state: nuclearbomb_base
+ - type: Physics
+ bodyType: Dynamic
+ - type: Fixtures
+ fixtures:
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.45
+ mass: 150
+ mask:
+ - TabletopMachineMask
+ layer:
+ - TabletopMachineLayer
+ - type: SolutionContainerManager
+ solutions:
+ tank:
+ reagents:
+ - ReagentId: NuclearCola
+ Quantity: 3000
+ - type: ReagentTank
+ transferAmount: 100
diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
index 5df040755b..b0a70146cd 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml
@@ -205,13 +205,13 @@
id: "slips"
hard: false
layer:
- - SmallImpassable
+ - SlipLayer
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3"
mass: 2.5
mask:
- - SmallImpassable
+ - ItemMask
- type: entity
parent: BasePDA
diff --git a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
index bf87842e1f..2c05048a0a 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
@@ -84,17 +84,17 @@
visible: false
map: [ "light" ]
- type: Physics
+ canCollide: true
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.2, -0.5, 0.2, 0.5"
+ bounds: "-0.2, -0.5, 0.2, 0.5"
mass: 20
mask:
- - Impassable
+ - MachineMask
layer:
- - Opaque
- - Impassable
+ - MachineLayer
- type: PointLight
enabled: false
radius: 8
@@ -153,10 +153,10 @@
- type: Fixtures
fixtures:
- shape:
- !type:PhysShapeAabb {}
+ !type:PhysShapeAabb
+ bounds: "-0.2, -0.5, 0.2, 0.5"
+ mass: 20
+ mask:
+ - MachineMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineLayer
diff --git a/Resources/Prototypes/Entities/Objects/Misc/inflatable_wall.yml b/Resources/Prototypes/Entities/Objects/Misc/inflatable_wall.yml
index a9db2dcbc5..0db9940702 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/inflatable_wall.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/inflatable_wall.yml
@@ -15,13 +15,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
mass: 15
layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Inflatable
@@ -59,13 +56,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
mass: 15
layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: Door
openSound:
path: /Audio/Misc/zip.ogg
diff --git a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml
index b30a4288d4..69649d4fe7 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml
@@ -27,7 +27,7 @@
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
layer:
- - MobImpassable
+ - MidImpassable
- type: Damageable
damageModifierSet: Wood
- type: Destructible
diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
index 9f7bdef5f9..d56dbe566b 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
@@ -22,10 +22,9 @@
- mass: 5
shape:
!type:PhysShapeAabb
- bounds: "-0.35,-0.2,0.25,0.1"
+ bounds: "-0.35,-0.2,0.25,0.1"
mask:
- - Impassable
- - VaultImpassable
+ - ItemMask
- type: Appearance
visuals:
- type: StackVisualizer
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
index a79c23854b..d20509f1e7 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
@@ -59,12 +59,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.40,0.25,0.25"
+ bounds: "-0.25,-0.40,0.25,0.25"
mass: 20
mask:
- - Impassable
+ - MobMask
layer:
- - Opaque
+ - MobLayer
- type: Pullable
- type: entity
@@ -121,14 +121,14 @@
- TrashBag
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.3
- layer:
- - SmallImpassable
- mask:
- - VaultImpassable
- mass: 100
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.3
+ mass: 100
+ layer:
+ - MobLayer
+ mask:
+ - MobMask
- type: Spillable
- type: SolutionContainerManager
solutions:
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml
index c5a9b3794c..52ca8dfc6f 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml
@@ -28,13 +28,13 @@
id: "slips"
hard: false
layer:
- - SmallImpassable
+ - SlipLayer
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3"
mass: 5
mask:
- - SmallImpassable
+ - ItemMask
- type: entity
name: soap
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
index 2eaafa2234..a821954842 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
@@ -92,10 +92,7 @@
bounds: "-0.25,-0.25,0.25,0.25"
hard: false
mask:
- - Opaque
- - Impassable
- - MobImpassable
- - SmallImpassable
+ - FullTileMask
- type: Appearance
visuals:
- type: VaporVisualizer
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
index 4a0bf9447a..8e6a5994f5 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
@@ -34,7 +34,7 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.4,0.25,0.1"
+ bounds: "-0.25,-0.4,0.25,0.1"
mass: 5
mask:
- Impassable
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
index 4b642776aa..3ae354ce1c 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml
@@ -4,6 +4,8 @@
description: A deployable barrier. Swipe your ID card to lock/unlock it.
parent: BaseStructure
components:
+ - type: Transform
+ noRot: true
- type: Sprite
sprite: Objects/Specific/Security/barrier.rsi
netsync: false
@@ -14,15 +16,12 @@
fixtures:
- shape:
!type:PhysShapeCircle
- radius: 0.45
- layer:
- - Opaque
- - Impassable
- - VaultImpassable
- - SmallImpassable
- mask:
- - Impassable
+ radius: 0.45
mass: 150
+ mask:
+ - MachineMask
+ layer:
+ - WallLayer
- type: AccessReader
access: [["Security"]]
- type: Lock
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml
index 20a425b088..d79866083d 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml
@@ -32,11 +32,9 @@
radius: 0.45
mass: 150
mask:
- - Impassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - MachineLayer
- type: Icon
sprite: Structures/Storage/Crates/artifact.rsi
state: artifact_container_icon
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifacts.yml
index 97e651d4bd..425039f454 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifacts.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifacts.yml
@@ -16,14 +16,14 @@
noRot: true
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.45
- mass: 150
- layer:
- - SmallImpassable
- mask:
- - VaultImpassable
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.45
+ mass: 150
+ layer:
+ - WallLayer
+ mask:
+ - MachineMask
- type: InteractionOutline
- type: Artifact
- type: RandomArtifactSprite
diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
index 3b9cafa5c5..3d7a3f19b5 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
@@ -29,20 +29,21 @@
target: MobMonkey
- type: CollisionWake
enabled: false
- - type: Physics
- bodyType: KinematicController
- type: Fixtures
- fixtures: # TODO: Make a second fixture.
+ fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3"
mass: 2.5
+ mask:
+ - ItemMask
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.3,0.4,0.3"
+ id: "rehydrate"
hard: false
layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - LowImpassable
- type: entity
parent: PlushieCarp
@@ -78,9 +79,12 @@
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
mass: 2.5
+ mask:
+ - ItemMask
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.4,0.4,0.4"
+ id: "rehydrate"
hard: false
layer:
- - SmallImpassable
- mask:
- - Impassable
- - MobImpassable
+ - LowImpassable
diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
index 31c887fe29..bdbcaf3058 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
@@ -29,16 +29,6 @@
interfaces:
- key: enum.TransferAmountUiKey.Key
type: TransferAmountBoundUserInterface
- - type: Physics
- bodyType: Dynamic
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
- mass: 5
- mask:
- - Impassable
- type: Spillable
solution: bucket
- type: DrawableSolution
diff --git a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
index 2103aa1ff9..b505c7b1eb 100644
--- a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
+++ b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml
@@ -31,10 +31,9 @@
mass: 180
restitution: 0.0
mask:
- - Impassable
- - VaultImpassable
+ - MobMask
layer:
- - VaultImpassable
+ - MobLayer
- type: VehicleVisuals
- type: Appearance
- type: Repairable
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml
index 9973da6de2..b139781482 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml
@@ -29,13 +29,12 @@
fixtures:
- shape:
!type:PhysShapeCircle
- radius: 0.8
+ radius: 0.8
mass: 200
hard: true
# Didn't use MapGrid for now as the bounds are stuffed.
layer:
- - Impassable
- - SmallImpassable
- - VaultImpassable
+ - LargeMobLayer
mask:
- - Impassable
+ - Impassable
+ - BulletImpassable
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
index 19d0f7a630..fc11e2d2ac 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
@@ -19,12 +19,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.1,-0.1,0.1,0.1"
+ bounds: "-0.1,-0.1,0.1,0.1"
hard: false
mask:
- Impassable
- layer:
- - MobImpassable
+ - BulletImpassable
- type: Projectile
damage:
types:
@@ -46,12 +45,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.15,-0.45,0.15,0.15"
+ bounds: "-0.15,-0.45,0.15,0.15"
hard: false
mask:
- Impassable
- layer:
- - MobImpassable
+ - BulletImpassable
- type: entity
id: BulletBaseFlash
@@ -125,12 +123,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.2,-0.2,0.2,0.2"
+ bounds: "-0.2,-0.2,0.2,0.2"
hard: false
mask:
- Impassable
- layer:
- - MobImpassable
+ - BulletImpassable
- type: Ammo
isProjectile: true
ammoVelocity: 20
@@ -160,10 +157,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.2,-0.2,0.2,0.2"
+ bounds: "-0.2,-0.2,0.2,0.2"
hard: false
mask:
- - Opaque
+ - Impassable
+ - Opaque
- type: Projectile
damage:
types:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
index 8004da099e..7efdca8b5d 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml
@@ -81,13 +81,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.15,-0.3,0.15,0.3"
+ bounds: "-0.15,-0.3,0.15,0.3"
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - MobImpassable
+ - MachineLayer
mass: 70
- type: Appearance
- type: AnimationPlayer
diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base_item.yml
index 5590c32122..46bb1fe917 100644
--- a/Resources/Prototypes/Entities/Objects/base_item.yml
+++ b/Resources/Prototypes/Entities/Objects/base_item.yml
@@ -24,11 +24,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
+ bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
mask:
- - Impassable
- - SmallImpassable
+ - ItemMask
restitution: 0.3 # fite me
friction: 0.2
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
index 984788fc35..d0346c8445 100644
--- a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
+++ b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
@@ -18,13 +18,12 @@
radius: 0.2
mass: 25
mask:
- - SmallImpassable
- - VaultImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - Opaque
+ - MidImpassable
+ - HighImpassable
+ - BulletImpassable
- type: InteractionOutline
- type: entity
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
index f72dbd6b3b..f06a3f9bf6 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml
@@ -16,16 +16,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.3,0.4,0.3"
+ bounds: "-0.4,-0.3,0.4,0.3"
mass: 25
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - TabletopMachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - TabletopMachineLayer
- type: ApcPowerReceiver
- type: ExtensionCableReceiver
- type: ActivatableUI
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
index e7381c81be..a718032bf5 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml
@@ -9,20 +9,7 @@
sprite: Structures/dispensers.rsi
drawdepth: SmallObjects
state: booze
- netsync: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.3,0.4,0.3"
- mass: 25
- mask:
- - Impassable
- - VaultImpassable
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ netsync: false
- type: ReagentDispenser
pack: BoozeDispenserInventory
emagPack: BoozeDispenserEmagInventory
diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
index 3919bffb7e..516784903b 100644
--- a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
+++ b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml
@@ -10,19 +10,6 @@
drawdepth: SmallObjects
state: soda
netsync: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.3,0.4,0.3"
- mass: 25
- mask:
- - Impassable
- - VaultImpassable
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- type: ReagentDispenser
pack: SodaDispenserInventory
emagPack: SodaDispenserEmagInventory
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml
index 547a14cd4c..2ff88c46cb 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml
@@ -87,9 +87,6 @@
components:
- type: Door
occludes: false
- crushDamage:
- types:
- Blunt: 15
- type: Occluder
enabled: false
- type: Sprite
@@ -98,13 +95,12 @@
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
+ bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
mass: 100
mask:
- - Impassable
+ - FullTileMask
layer: #removed opaque from the layer, allowing lasers to pass through glass airlocks
- - Impassable
- - VaultImpassable
+ - GlassAirlockLayer
- type: Construction
graph: Airlock
node: glassAirlock
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/assembly.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/assembly.yml
index 7f81518854..7529eff354 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/assembly.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/assembly.yml
@@ -15,13 +15,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 100
mask:
- - MobMask
+ - FullTileMask
layer:
- - MobImpassable
- - VaultImpassable
+ - HumanoidBlockLayer
- type: Anchorable
delay: 2
- type: Pullable
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
index 720a8ebb1b..09b611b23e 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
@@ -29,14 +29,12 @@
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
+ bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
mass: 100
mask:
- - Impassable
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - VaultImpassable
+ - AirlockLayer
- type: Door
board: DoorElectronics
crushDamage:
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
index 9636831c3c..a2ed4c60d6 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml
@@ -48,13 +48,10 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
mask:
- - MobImpassable
+ - Impassable
+ - HighImpassable
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - AirlockLayer
- type: Door
openDrawDepth: WallTops
closeTimeOne: 0.1
@@ -92,6 +89,7 @@
type: WiresBoundUserInterface
- type: Airtight
fixVacuum: true
+ - type: Occluder
- type: Construction
graph: Firelock
node: Firelock
@@ -103,6 +101,20 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/firelock.rsi
+ - type: Occluder
+ enabled: false
+ - type: Fixtures
+ 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
+ mask:
+ - Impassable
+ - HighImpassable
+ layer:
+ - GlassAirlockLayer
+ - type: Door
+ occludes: false
- type: entity
id: FirelockEdge
@@ -122,10 +134,11 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.2" # don't want this colliding with walls or they won't close
mask:
- - MobImpassable
+ - Impassable
+ - HighImpassable
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - GlassAirlockLayer
+ - type: Occluder
+ enabled: false
+ - type: Door
+ occludes: false
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/frame.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/frame.yml
index 4ffcaa5c8b..e012f0c757 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/frame.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/frame.yml
@@ -28,11 +28,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
- layer:
- - SmallImpassable
mask:
- - VaultImpassable
+ - Impassable
+ - HighImpassable
+ layer:
+ - HighImpassable
+ - MidImpassable
- type: Transform
noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
index 118dc3d485..9e233d1fc2 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
@@ -20,13 +20,9 @@
bounds: "-0.49,-0.49,0.49,0.49"
mass: 100
mask:
- - MobImpassable
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - AirlockLayer
- type: Door
bumpOpen: false
clickOpen: true
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
index f991ad2dc8..66e42e3c32 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
@@ -19,13 +19,9 @@
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
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - AirlockLayer
- type: Door
board: DoorElectronics
bumpOpen: false
@@ -180,11 +176,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
- layer:
- - Opaque
mask:
- - VaultImpassable
+ - Impassable
+ - HighImpassable
+ layer:
+ - HighImpassable
- type: Transform
noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/assembly.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/assembly.yml
index ccb0a345e7..d7229a2222 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/assembly.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/assembly.yml
@@ -19,7 +19,7 @@
mass: 30
mask:
- Impassable
- - VaultImpassable
+ - HighImpassable
- type: Anchorable
- type: Pullable
- type: Rotatable
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
index 2ec4aea2d0..661e4fafa9 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml
@@ -13,13 +13,10 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.3"
mass: 50
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
mask:
- - VaultImpassable
+ - TabletopMachineMask
+ layer:
+ - GlassAirlockLayer
- type: Sprite
netsync: false
sprite: Structures/Doors/Windoors/windoor.rsi
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml
index cba52df920..0a0072385d 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml
@@ -15,12 +15,10 @@
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
+ mask: # tables should collide with other tables
+ - TableMask
layer:
- - VaultImpassable
- mask:
- - Impassable
- - VaultImpassable # tables should collide with other tables
- - SmallImpassable
+ - TableLayer
- type: Sprite
netsync: false
- type: Icon
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml
index e0d2347d0c..ab1abf1f59 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml
@@ -16,8 +16,9 @@
bounds: "-0.40,-0.30,0.40,0.45"
mass: 50
mask:
- - Impassable
- - SmallImpassable
+ - TableMask
+ layer:
+ - TableLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
@@ -61,8 +62,9 @@
bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
+ layer:
+ - HalfWallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Wood
@@ -106,8 +108,9 @@
bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
+ layer:
+ - HalfWallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
index f0ac36fb03..cee6de01c9 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
@@ -17,10 +17,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.05"
+ bounds: "-0.45,-0.45,0.45,0.05"
mass: 25
mask:
- - SmallImpassable
+ - TableMask
- type: Sprite
sprite: Structures/Furniture/furniture.rsi
state: bed
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/carpets.yml b/Resources/Prototypes/Entities/Structures/Furniture/carpets.yml
index 07f1eebd54..095bf06686 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/carpets.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/carpets.yml
@@ -18,11 +18,6 @@
- type: Physics
canCollide: false
- type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb {}
- layer:
- - Passable
- type: Damageable
damageContainer: Inorganic
- type: Destructible
@@ -136,14 +131,6 @@
state: chapel
- type: Tag
tags: [ Carpet ]
- - type: Physics
- canCollide: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb {}
- layer:
- - Passable
- type: Damageable
damageContainer: Inorganic
- type: Destructible
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
index 8ff2870af6..ff829d9254 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
@@ -14,11 +14,10 @@
fixtures:
- shape:
!type:PhysShapeCircle
- radius: 0.2
- mask:
- - Impassable
- - VaultImpassable
+ radius: 0.2
mass: 10
+ mask:
+ - TableMask
- type: Sprite
sprite: Structures/Furniture/chairs.rsi
noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml b/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml
index c2931ee206..4c7647673a 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml
@@ -1,4 +1,4 @@
-- type: entity
+- type: entity
name: baseinstrument
id: BasePlaceableInstrument
parent: BaseStructureDynamic
@@ -31,14 +31,19 @@
type: InstrumentBoundUserInterface
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.45
- mass: 50
- layer:
- - SmallImpassable
- mask:
- - VaultImpassable
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.45
+ mass: 50
+ mask:
+ - Impassable
+ - HighImpassable
+ - MidImpassable
+ layer:
+ - Opaque
+ - HighImpassable
+ - MidImpassable
+ - BulletImpassable
- type: Transform
anchored: true
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/memorial.yml b/Resources/Prototypes/Entities/Structures/Furniture/memorial.yml
index b74e5ee5f1..990df0f7c9 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/memorial.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/memorial.yml
@@ -13,10 +13,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.20"
+ bounds: "-0.45,-0.45,0.45,0.20"
mass: 50
- layer:
- - SmallImpassable
mask:
- - Impassable
+ - FullTileMask
+ layer:
+ - WallLayer
- type: InteractionOutline
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml b/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml
index dd8a7eba2c..7d15dcd024 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/potted_plants.yml
@@ -15,9 +15,10 @@
radius: 0.2
mass: 25
mask:
- - Impassable
+ - Impassable
layer:
- - Opaque
+ - Opaque
+ - BulletImpassable
- type: Sprite
drawdepth: Overdoors
offset: "0.0,0.3"
@@ -69,19 +70,6 @@
components:
- type: Sprite
state: plant-25
- - type: Physics
- bodyType: Dynamic
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.2
- position: "0.0,-0.3"
- mass: 25
- layer:
- - SmallImpassable
- mask:
- - Impassable
- type: entity
id: PottedPlantBioluminscent
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
index 365de819c6..edbbce118d 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
@@ -22,15 +22,12 @@
- type: Physics
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeCircle
- radius: 0.35
- mass: 30
- mask:
- - Impassable
- - SmallImpassable
- layer:
- - Opaque
+ - shape:
+ !type:PhysShapeCircle
+ radius: 0.35
+ mass: 30
+ mask:
+ - MobMask
- type: Damageable
- type: Destructible
thresholds:
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
index b1e03701d4..dcc6096142 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml
@@ -420,9 +420,9 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
+ bounds: "-0.25,-0.25,0.25,0.25"
mass: 50
- layer:
- - SmallImpassable
mask:
- - Impassable
+ - TabletopMachineMask
+ layer:
+ - TabletopMachineLayer
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml
index a8b0fa5d29..686dcb94ee 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml
@@ -11,15 +11,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
+ bounds: "-0.25,-0.5,0.25,0.5"
mass: 25
mask:
- - MobMask
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - MachineLayer
- type: InteractionOutline
- type: Rotatable
- type: Anchorable
diff --git a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
index 5bdfcc8a49..f944f13a58 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
@@ -14,13 +14,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 25
- layer:
- - MobMask
- - Opaque
mask:
- - MobMask
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
index e08c545107..ce34ea4a5a 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml
@@ -28,13 +28,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.4,0.25,0.4"
+ bounds: "-0.25,-0.4,0.25,0.4"
mass: 25
mask:
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
+ - MachineLayer
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
index 59dca066c1..d5f2547297 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml
@@ -16,13 +16,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
+ bounds: "-0.25,-0.5,0.25,0.5"
mass: 25
- layer:
- - SmallImpassable
- - Opaque
mask:
- - MobMask
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Construction
graph: Machine
node: machine
diff --git a/Resources/Prototypes/Entities/Structures/Machines/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/frame.yml
index 8cffa33a5e..36ee3bfe95 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/frame.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/frame.yml
@@ -16,17 +16,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
+ bounds: "-0.25,-0.5,0.25,0.5"
mass: 25
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Clickable
- type: InteractionOutline
- type: Anchorable
@@ -69,17 +64,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
+ bounds: "-0.25,-0.5,0.25,0.5"
mass: 25
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Clickable
- type: InteractionOutline
- type: Anchorable
@@ -145,4 +135,4 @@
- type: Sprite
netsync: false
sprite: Structures/Machines/parts.rsi
- state: destroyed
\ No newline at end of file
+ state: destroyed
diff --git a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
index 3cfe172b2c..5b8eab52ee 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml
@@ -31,15 +31,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-1.5,-1.5,1.5,1.5"
+ bounds: "-1.5,-1.5,1.5,1.5"
mass: 500
mask:
- - Impassable
+ - LargeMobMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - WallLayer
- type: Repairable
fuelCost: 10
doAfterDelay: 5
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index f44f5b0615..8556e5abcb 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -27,15 +27,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
+ bounds: "-0.4,-0.4,0.4,0.4"
mass: 25
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
+ - MachineLayer
- type: Construction
graph: Machine
node: machine
@@ -116,15 +113,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
+ bounds: "-0.4,-0.4,0.4,0.4"
mass: 25
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
+ - MachineLayer
- type: ResearchClient
- type: Construction
graph: Machine
diff --git a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
index 4e08a80b0e..8a456765c9 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml
@@ -19,13 +19,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
+ bounds: "-0.25,-0.5,0.25,0.5"
mass: 25
- layer:
- - SmallImpassable
- - Opaque
mask:
- - MobMask
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Construction
graph: Machine
node: machine
diff --git a/Resources/Prototypes/Entities/Structures/Machines/microwave.yml b/Resources/Prototypes/Entities/Structures/Machines/microwave.yml
index b5953c42df..43a1446f9a 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/microwave.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/microwave.yml
@@ -25,12 +25,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.3,-0.16,0.3,0.16"
+ bounds: "-0.3,-0.16,0.3,0.16"
mass: 25
- layer:
- - SmallImpassable
mask:
- - VaultImpassable
+ - TabletopMachineMask
+ layer:
+ - TabletopMachineLayer
- type: Sprite
netsync: false
sprite: Structures/Machines/microwave.rsi
diff --git a/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml b/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml
index bc9b1b18d8..25cabeccae 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/reagent_grinder.yml
@@ -30,15 +30,15 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.08,-0.35,0.15,0.25"
- layer:
- - SmallImpassable
+ bounds: "-0.08,-0.35,0.15,0.25"
mask:
- - VaultImpassable
+ - TabletopMachineMask
+ layer:
+ - TabletopMachineLayer
- type: Sprite
netsync: false
sprite: Structures/Machines/juicer.rsi
state: juicer0
drawdepth: SmallObjects
- type: ApcPowerReceiver
- powerLoad: 300
\ No newline at end of file
+ powerLoad: 300
diff --git a/Resources/Prototypes/Entities/Structures/Machines/recycler.yml b/Resources/Prototypes/Entities/Structures/Machines/recycler.yml
index a9f0611809..d2a726446f 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/recycler.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/recycler.yml
@@ -16,23 +16,21 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.2,-0.2,0.2,0.2"
+ bounds: "-0.2,-0.2,0.2,0.2"
id: brrt
hard: false
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - FullTileMask
- shape:
!type:PhysShapeAabb
- bounds: "-0.49,-0.49,0.49,0.49"
+ bounds: "-0.49,-0.49,0.49,0.49"
id: collision
hard: true
mask:
- Impassable
layer:
- - Opaque
+ - Opaque
+ - BulletImpassable
- type: Transform
anchored: true
noRot: false
diff --git a/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml b/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml
index ffd0141ebc..4adeebbbb4 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/seed_extractor.yml
@@ -17,11 +17,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.4,0.25,0.4"
+ bounds: "-0.25,-0.4,0.25,0.4"
mass: 25
- layer:
- - MobMask
- - Opaque
mask:
- - MobMask
+ - MachineMask
+ layer:
+ - MachineLayer
- type: SeedExtractor
diff --git a/Resources/Prototypes/Entities/Structures/Machines/stasisbed.yml b/Resources/Prototypes/Entities/Structures/Machines/stasisbed.yml
index 4ef01fc43c..ea03640c3c 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/stasisbed.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/stasisbed.yml
@@ -44,8 +44,8 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.05"
+ bounds: "-0.45,-0.45,0.45,0.05"
mass: 25
mask:
- - SmallImpassable
+ - LowImpassable
diff --git a/Resources/Prototypes/Entities/Structures/Machines/traitordm.yml b/Resources/Prototypes/Entities/Structures/Machines/traitordm.yml
index 2a94d0d91e..2a753389b1 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/traitordm.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/traitordm.yml
@@ -17,13 +17,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
+ bounds: "-0.25,-0.25,0.25,0.25"
mass: 25
mask:
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
+ - MachineLayer
- type: TraitorDeathMatchRedemption
placement:
mode: AlignTileAny
diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
index 88844901a0..aad7d8d8c8 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
@@ -22,14 +22,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.45,0.25,0.45"
+ bounds: "-0.25,-0.45,0.25,0.45"
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - FullTileMask
layer:
- - Opaque
- - MobImpassable
+ - WallLayer
mass: 100
- type: Destructible
thresholds:
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
index 82669de719..3e9322cf55 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml
@@ -1,6 +1,7 @@
- type: entity
abstract: true
id: GasPipeBase
+ parent: BaseItem
name: pipe
description: Holds gas.
placement:
@@ -8,32 +9,6 @@
components:
- type: Item
size: 10
- - type: Clickable
- - type: InteractionOutline
- - type: MovedByPressure
- - type: DamageOnHighSpeedImpact
- damage:
- types:
- Blunt: 5
- soundHit:
- path: /Audio/Effects/hit_kick.ogg
- - type: CollisionWake
- - type: TileFrictionModifier
- modifier: 0.5
- - type: Physics
- bodyType: Dynamic
- fixedRotation: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
- mass: 5
- mask:
- - Impassable
- - VaultImpassable
- restitution: 0.3 # fite me
- friction: 0.2
- type: Transform
anchored: true
- type: Damageable
@@ -43,7 +18,6 @@
- type: PipeAppearance
- type: Anchorable
- type: Rotatable
- - type: Pullable
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml
index 2b5efced95..43cb3bfee2 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml
@@ -13,19 +13,14 @@
fixedRotation: false
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.4,0.25,0.4"
- mass: 25
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
- mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.25,-0.4,0.25,0.4"
+ mass: 25
+ mask:
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Clickable
- type: InteractionOutline
- type: Anchorable
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml
index c09df1b414..42f3811d05 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml
@@ -16,6 +16,12 @@
- type: Physics
bodyType: Static
- type: Fixtures
+ fixtures:
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.25,-0.5,0.25,0.5"
+ mask:
+ - SubfloorMask
- type: Transform
anchored: true
- type: Anchorable
@@ -60,13 +66,6 @@
drawdepth: ThickPipe
sprite: Structures/Piping/disposal.rsi
state: pipe-b
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
- layer: [ Underplating ]
- type: Construction
graph: DisposalPipe
node: broken
@@ -87,13 +86,6 @@
- type: DisposalVisualizer
state_free: conpipe-s
state_anchored: pipe-s
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
- layer: [ Underplating ]
- type: Construction
graph: DisposalPipe
node: pipe
@@ -120,13 +112,6 @@
interfaces:
- key: enum.DisposalTaggerUiKey.Key
type: DisposalTaggerBoundUserInterface
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.5"
- layer: [ Underplating ]
- type: Construction
graph: DisposalPipe
node: tagger
@@ -147,13 +132,13 @@
- type: DisposalVisualizer
state_free: conpipe-t
state_anchored: pipe-t
- - type: Physics
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.25,0.4"
- layer: [ Underplating ]
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.25,-0.5,0.25,0.4"
+ mask:
+ - SubfloorMask
- type: Construction
graph: DisposalPipe
node: trunk
@@ -186,13 +171,13 @@
interfaces:
- key: enum.DisposalRouterUiKey.Key
type: DisposalRouterBoundUserInterface
- - type: Physics
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.25,0.5"
- layer: [ Underplating ]
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.5,0.25,0.5"
+ mask:
+ - SubfloorMask
- type: Construction
graph: DisposalPipe
node: router
@@ -218,13 +203,13 @@
state_anchored: pipe-j2s
- type: Flippable
mirrorEntity: DisposalRouter
- - type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.5,0.5"
- layer: [ Underplating ]
+ bounds: "-0.25,-0.5,0.5,0.5"
+ mask:
+ - SubfloorMask
- type: entity
id: DisposalJunction
@@ -248,13 +233,13 @@
state_anchored: pipe-j1
- type: Flippable
mirrorEntity: DisposalJunctionFlipped
- - type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.25,0.5"
- layer: [ Underplating ]
+ bounds: "-0.5,-0.5,0.25,0.5"
+ mask:
+ - SubfloorMask
- type: Construction
graph: DisposalPipe
node: junction
@@ -280,13 +265,13 @@
state_anchored: pipe-j2
- type: Flippable
mirrorEntity: DisposalJunction
- - type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.5,0.5,0.5"
- layer: [ Underplating ]
+ bounds: "-0.25,-0.5,0.5,0.5"
+ mask:
+ - SubfloorMask
- type: entity
id: DisposalYJunction
@@ -308,13 +293,13 @@
- type: DisposalVisualizer
state_free: conpipe-y
state_anchored: pipe-y
- - type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.25"
- layer: [ Underplating ]
+ bounds: "-0.5,-0.5,0.5,0.25"
+ mask:
+ - SubfloorMask
- type: Construction
graph: DisposalPipe
node: yJunction
@@ -335,13 +320,13 @@
- type: DisposalVisualizer
state_free: conpipe-c
state_anchored: pipe-c
- - type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.25,0.25"
- layer: [ Underplating ]
+ bounds: "-0.5,-0.5,0.25,0.25"
+ mask:
+ - SubfloorMask
- type: Construction
graph: DisposalPipe
node: bend
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
index 94e6e70e6e..fb3302261d 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml
@@ -24,15 +24,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.4,0.25,0.4"
+ bounds: "-0.25,-0.4,0.25,0.4"
mass: 30
mask:
- - Impassable
+ - MachineMask
layer:
- - Opaque
- - SmallImpassable
- - VaultImpassable
- - MobImpassable
+ - MachineLayer
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml
index 236e4a4020..f984fad200 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/base_particleaccelerator.yml
@@ -14,13 +14,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 25
mask:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Transform
anchored: true
noRot: false
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml
index 3a95aa3df2..72c0e842c5 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml
@@ -21,13 +21,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.48,-0.48,0.48,0.48"
+ bounds: "-0.48,-0.48,0.48,0.48"
hard: false
layer: [None]
mask:
- # Has to hit mobs, singularity, and singularity generator
- - MobMask
- - Opaque
+ # Has to hit mobs, singularity, and singularity generator
+ - Opaque
+ - FullTileMask
- type: ParticleProjectile
- type: SinguloFood
# Energy is setup by the PA particle fire function.
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/collector.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/collector.yml
index f9bafa8bfa..e07d42d2db 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/collector.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/collector.yml
@@ -14,17 +14,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 25
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Transform
anchored: true
noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/containment.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/containment.yml
index 551ba599e6..7cc004236a 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/containment.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/containment.yml
@@ -1,35 +1,21 @@
- type: entity
+ parent: BaseStructure
id: ContainmentFieldGenerator
name: containment field generator
description: A machine that generates a containment field when powered by an emitter. Keeps the Singularity docile.
- placement:
- mode: SnapgridCenter
components:
- - type: InteractionOutline
- - type: Clickable
- - type: Physics
- bodyType: Static
- type: Fixtures
fixtures:
- shape:
- # Using a circle here makes it a lot easier to pull it all the way from Cargo
- # However keep in mind that this will affect singulo collision as well,
- # when people inevitably physicsify that,
- # so it can't just be 0.1 or something
- !type:PhysShapeCircle
- radius: 0.45
+ !type:PhysShapeAabb
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 25
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - type: Transform
- anchored: true
+ - FullTileMask
+ layer:
+ - FullTileMask
+ - type: InteractionOutline
+ - type: Anchorable
- type: Sprite
sprite: Structures/Power/Generation/Singularity/containment.rsi
state: icon
@@ -38,8 +24,6 @@
sprite: Structures/Power/Generation/Singularity/containment.rsi
state: icon
- type: ContainmentFieldGenerator
- - type: Anchorable
- - type: Pullable
- type: PointLight
enabled: false
color: "#4080FF"
@@ -62,16 +46,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
+ bounds: "-0.5,-0.5,0.5,0.5"
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - FullTileMask
+ layer:
+ - FullTileMask
- type: Transform
anchored: true
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml
index 6a6802ebe6..f965fc9c35 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml
@@ -14,17 +14,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
+ bounds: "-0.25,-0.25,0.25,0.25"
mass: 100
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - Opaque
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Transform
anchored: true
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/generator.yml
index c4c08bc443..ef70b21dc2 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/generator.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/generator.yml
@@ -23,10 +23,10 @@
radius: 0.45
mass: 25
# Keep an eye on ParticlesProjectile when adjusting these
+ mask:
+ - MachineMask
layer:
- Opaque
- mask:
- - MobMask
- type: Transform
anchored: true
noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml
index f5ec4c75d9..1c8ca857f2 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml
@@ -16,16 +16,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 25
mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - FullTileMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - WallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
@@ -83,20 +79,6 @@
components:
- type: Physics
bodyType: Dynamic
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
- mass: 25
- mask:
- - Impassable
- - VaultImpassable
- - SmallImpassable
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- type: entity
id: AMEShielding
@@ -115,13 +97,12 @@
- type: Fixtures
fixtures:
- shape:
- !type:PhysShapeAabb {}
+ !type:PhysShapeAabb
+ mass: 25
+ mask:
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
index 8aa09afd87..b654dd3ed0 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml
@@ -21,18 +21,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.5,0.4,0.3"
+ bounds: "-0.4,-0.5,0.4,0.3"
mass: 25
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineLayer
- type: Transform
anchored: true
noRot: true
@@ -94,11 +88,6 @@
color: "#3db83b"
castShadows: false
- type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: Transform
anchored: true
- type: Sprite
@@ -137,11 +126,6 @@
- type: InteractionOutline
- type: Physics
- type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: Transform
anchored: true
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml
index 3f3aff0edc..a9fb711db1 100644
--- a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml
@@ -16,18 +16,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.1,0.45,0.1"
+ bounds: "-0.45,-0.1,0.45,0.1"
mass: 100
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineLayer
- type: Sprite
sprite: Structures/Power/Generation/solar_panel.rsi
state: normal
@@ -120,9 +114,9 @@
radius: 0.25
mass: 75
mask:
- - VaultImpassable
+ - MachineMask
layer:
- - VaultImpassable
+ - MachineLayer
- type: Sprite
sprite: Structures/Power/Generation/solar_panel.rsi
state: solar_assembly
@@ -163,15 +157,9 @@
!type:PhysShapeAabb {}
mass: 100
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineLayer
- type: Sprite
sprite: Structures/Power/Generation/solar_panel.rsi
state: solar_tracker
diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml
index a5a87b1e05..49fa9af4f7 100644
--- a/Resources/Prototypes/Entities/Structures/Power/apc.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml
@@ -22,13 +22,6 @@
- type: AccessReader
access: [["Engineering"]]
- type: InteractionOutline
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: Transform
anchored: true
- type: Sprite
@@ -75,3 +68,4 @@
maxChargeRate: 5000
supplyRampTolerance: 1000
supplyRampRate: 500
+ - type: WallMount
diff --git a/Resources/Prototypes/Entities/Structures/Power/cable_terminal.yml b/Resources/Prototypes/Entities/Structures/Power/cable_terminal.yml
index 0e5a448cce..4ae73f7b53 100644
--- a/Resources/Prototypes/Entities/Structures/Power/cable_terminal.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/cable_terminal.yml
@@ -10,14 +10,6 @@
netsync: false
drawdepth: BelowFloor
- type: Clickable
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Underplating
- type: InteractionOutline
- type: Transform
anchored: true
diff --git a/Resources/Prototypes/Entities/Structures/Power/cables.yml b/Resources/Prototypes/Entities/Structures/Power/cables.yml
index 2ab2c32c02..fd64ea97a3 100644
--- a/Resources/Prototypes/Entities/Structures/Power/cables.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/cables.yml
@@ -5,14 +5,6 @@
mode: SnapgridCenter
components:
- type: Clickable
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Underplating
- type: InteractionOutline
- type: Transform
anchored: true
diff --git a/Resources/Prototypes/Entities/Structures/Power/debug_power.yml b/Resources/Prototypes/Entities/Structures/Power/debug_power.yml
index 73cc8eb790..e264e2d75e 100644
--- a/Resources/Prototypes/Entities/Structures/Power/debug_power.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/debug_power.yml
@@ -24,7 +24,7 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
layer: [MobMask, Opaque]
- type: Transform
anchored: true
@@ -68,7 +68,7 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
layer: [MobMask, Opaque]
- type: Transform
anchored: true
@@ -100,7 +100,7 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
layer: [MobMask, Opaque]
- type: Transform
anchored: true
@@ -160,7 +160,7 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
layer: [MobMask, Opaque]
- type: Transform
anchored: true
diff --git a/Resources/Prototypes/Entities/Structures/Power/saltern_power.yml b/Resources/Prototypes/Entities/Structures/Power/saltern_power.yml
index 19a00c8f88..2bd7f4b94d 100644
--- a/Resources/Prototypes/Entities/Structures/Power/saltern_power.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/saltern_power.yml
@@ -25,7 +25,6 @@
parent: BaseAPC
id: SalternAPC
components:
- - type: WallMount
- type: Battery
maxCharge: 12000
startingCharge: 2000
diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml
index f25c1fd4ee..ffaf402afb 100644
--- a/Resources/Prototypes/Entities/Structures/Power/substation.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml
@@ -102,11 +102,6 @@
- type: Physics
bodyType: Static
- type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: Transform
anchored: true
- type: Sprite # TODO: add sprite for maintenance panel open
@@ -188,11 +183,6 @@
- type: Physics
bodyType: Static
- type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: Transform
anchored: true
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml
index e8f81fb0d3..bd60492a3f 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml
@@ -50,17 +50,14 @@
bodyType: Dynamic
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.25,0.25"
- mass: 25
- mask:
- - MobMask
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.25,-0.25,0.25,0.25"
+ mass: 25
+ mask:
+ - MachineMask
+ layer:
+ - MachineLayer
- type: AtmosDevice
requireAnchored: false
joinSystem: true
@@ -376,17 +373,14 @@
bodyType: Dynamic
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.4,-0.3,0.4,0.3"
- mass: 25
- mask:
- - MobMask
- layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
- - VaultImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.3,0.4,0.3"
+ mass: 25
+ mask:
+ - MachineMask
+ layer:
+ - MachineLayer
- type: entity
parent: GasCanisterBrokenBase
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml
index 4395560024..8be3d3c79f 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml
@@ -31,15 +31,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.25,-0.48,0.25,0.48"
+ bounds: "-0.25,-0.48,0.25,0.48"
mass: 70
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - MachineLayer
- type: EntityStorage
- type: Weldable
- type: PlaceableSurface
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml
index 4a41b255e4..2ab7a5122b 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml
@@ -23,15 +23,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.29"
+ bounds: "-0.4,-0.4,0.4,0.29"
mass: 25
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - MachineLayer
- type: EntityStorage
Capacity: 500
- type: Weldable
@@ -86,15 +83,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.29"
+ bounds: "-0.4,-0.4,0.4,0.29"
mass: 25
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - MachineLayer
- type: EntityStorage
Capacity: 500
- type: Weldable
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
index 3fc29ca444..da368f1483 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
@@ -619,15 +619,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.29"
+ bounds: "-0.4,-0.4,0.4,0.29"
mass: 75
mask:
- - Impassable
- - SmallImpassable
+ - LargeMobMask
layer:
- - Opaque
- - MobImpassable
- - SmallImpassable
+ - LargeMobLayer
- type: Construction
graph: CrateLivestock
node: cratelivestock
diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml
index c637440b42..f32496baf8 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml
@@ -13,17 +13,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.4,-0.4,0.4,0.4"
+ bounds: "-0.4,-0.4,0.4,0.4"
mass: 100
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
@@ -55,4 +50,4 @@
solution: tank
- type: ReagentTank
- type: Transform
- noRot: true
\ No newline at end of file
+ noRot: true
diff --git a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
index 6f41dd72f0..151cd9cbb7 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/morgue.yml
@@ -21,18 +21,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
mass: 25
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: MorgueEntityStorage
IsCollidableWhenOpen: true
Capacity: 1
@@ -61,15 +55,12 @@
bodyType: Static
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- mass: 25
- mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.5,0.5,0.5"
+ mass: 25
+ mask:
+ - Impassable
- type: Sprite
netsync: false
sprite: Structures/Storage/morgue.rsi
@@ -102,18 +93,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
mass: 25
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - MachineLayer
- type: CrematoriumEntityStorage
IsCollidableWhenOpen: true
Capacity: 1
diff --git a/Resources/Prototypes/Entities/Structures/Storage/storage.yml b/Resources/Prototypes/Entities/Structures/Storage/storage.yml
index 403458683b..7b75330bf3 100644
--- a/Resources/Prototypes/Entities/Structures/Storage/storage.yml
+++ b/Resources/Prototypes/Entities/Structures/Storage/storage.yml
@@ -18,13 +18,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.3,-0.3,0.3,0.3"
+ bounds: "-0.3,-0.3,0.3,0.3"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
- - SmallImpassable
+ - MachineMask
+ layer:
+ - MachineLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/atmos_plaque.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/atmos_plaque.yml
index 3927613afd..24721af70f 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/atmos_plaque.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/atmos_plaque.yml
@@ -9,9 +9,9 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.3,-0.3,0.3,0.3"
+ bounds: "-0.3,-0.3,0.3,0.3"
layer:
- - MobImpassable
+ - MidImpassable
- type: Sprite
state: atmosplaque
- type: AtmosPlaque
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml
index 9cf2ea54e9..407293aea4 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml
@@ -4,14 +4,6 @@
name: bar sign
components:
- type: WallMount
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.95,-0.45,1,0.45"
- layer:
- - Passable
- type: Sprite
drawdepth: Objects
sprite: Structures/Wallmounts/barsign.rsi
@@ -35,7 +27,6 @@
components:
- type: Clickable
- type: InteractionOutline
- - type: Physics
- type: Sprite
drawdepth: WallTops
sprite: Structures/Wallmounts/sylphs.rsi
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml
index ae1c839714..5587194d50 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml
@@ -39,13 +39,6 @@
- type: Wires
BoardName: "Air Alarm"
LayoutId: AirAlarm
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.25,-0.25,0.3,0.25"
- layer: [ Passable ]
- type: AccessReader
access: [["Atmospherics"]]
- type: Appearance
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/lighting.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/lighting.yml
index d6b404c4f8..ed670d3ea8 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/lighting.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/lighting.yml
@@ -11,14 +11,6 @@
- type: Construction
graph: LightFixture
node: tubeLight
- - type: Physics
- canCollide: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.15,-0.45,0.35,0.45"
- layer: [ Passable ]
- type: Sprite
sprite: Structures/Wallmounts/Lighting/light_tube.rsi
drawdepth: WallMountedItems
@@ -114,7 +106,7 @@
damage:
types:
Heat: 5
-
+
- type: entity
parent: WallLight
id: UnpoweredLightLED
@@ -137,7 +129,7 @@
damage:
types:
Heat: 5
-
+
- type: entity
parent: WallLight
id: UnpoweredLightExterior
@@ -161,7 +153,7 @@
damage:
types:
Heat: 5
-
+
- type: entity
parent: WallLight
id: UnpoweredLightSodium
@@ -232,13 +224,6 @@
- type: PointLight
enabled: false
offset: "0, -0.5"
- - type: Physics
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "0,0,0.1,0.25"
- layer: [ Passable ]
- type: PoweredLight
bulb: Bulb
damage:
diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
index 6600db1d8a..f3eaad3fd5 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
@@ -45,15 +45,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
+ bounds: "-0.5,-0.5,0.5,0.5"
mass: 100
mask:
- - Impassable
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: IconSmooth
key: rock
base: rock_
diff --git a/Resources/Prototypes/Entities/Structures/Walls/barricades.yml b/Resources/Prototypes/Entities/Structures/Walls/barricades.yml
index dbd772b275..e0614ed1f6 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/barricades.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/barricades.yml
@@ -15,12 +15,10 @@
fixtures:
- shape:
!type:PhysShapeAabb {}
+ mask:
+ - FullTileMask
layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - WallLayer
- type: Tag
tags:
- Wooden
diff --git a/Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml b/Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml
index 89365385c4..8efa6b0ac5 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/base_structurewalls.yml
@@ -26,14 +26,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Opaque
- - Impassable
- - VaultImpassable
- - SmallImpassable
+ bounds: "-0.5,-0.5,0.5,0.5"
mask:
- - Impassable
+ - FullTileMask
+ layer:
+ - WallLayer
- type: Occluder
sizeX: 32
sizeY: 32
diff --git a/Resources/Prototypes/Entities/Structures/Walls/girder.yml b/Resources/Prototypes/Entities/Structures/Walls/girder.yml
index 91b0527981..2dffd9d499 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/girder.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/girder.yml
@@ -13,13 +13,12 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
- layer:
- - Impassable
- - SmallImpassable
mask:
- - VaultImpassable
+ - MachineMask
+ layer:
+ - FullTileMask
- type: InteractionOutline
- type: Construction
graph: Girder
diff --git a/Resources/Prototypes/Entities/Structures/Walls/grille.yml b/Resources/Prototypes/Entities/Structures/Walls/grille.yml
index b61c89fff4..6aabe2102c 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/grille.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/grille.yml
@@ -45,14 +45,11 @@
bodyType: Static
- type: Fixtures
fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - shape:
+ !type:PhysShapeAabb
+ bounds: "-0.5,-0.5,0.5,0.5"
+ layer:
+ - GlassLayer
- type: Destructible
thresholds:
- trigger:
diff --git a/Resources/Prototypes/Entities/Structures/Walls/railing.yml b/Resources/Prototypes/Entities/Structures/Walls/railing.yml
index d84827e7be..0c386689cb 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/railing.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/railing.yml
@@ -20,11 +20,10 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.3"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
- - SmallImpassable
+ - TableMask
+ layer:
+ - TableLayer
- type: InteractionOutline
- type: Repairable
- type: Damageable
@@ -73,20 +72,18 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.3"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
- - SmallImpassable
+ - TableMask
+ layer:
+ - TableLayer
- shape:
!type:PhysShapeAabb
bounds: "0.49,0.49,0.3,-0.49"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
- - SmallImpassable
+ - TableMask
+ layer:
+ - TableLayer
- type: InteractionOutline
- type: Repairable
- type: Damageable
@@ -135,11 +132,10 @@
!type:PhysShapeAabb
bounds: "-0.49,0.49,-0.3,0.3"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
- - SmallImpassable
+ - TableMask
+ layer:
+ - TableLayer
- type: InteractionOutline
- type: Repairable
- type: Damageable
diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
index 156cce31e0..94dfb6cea2 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
@@ -498,14 +498,10 @@
- "-0.5,-0.5"
- "0.5,0.5"
- "0.5,-0.5"
- layer:
- - Opaque
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
mask:
- - Impassable
+ - FullTileMask
+ layer:
+ - WallLayer
- type: Destructible
thresholds:
- trigger:
@@ -712,10 +708,8 @@
- shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
- layer:
- - Impassable
- - VaultImpassable
- - SmallImpassable
mask:
- - Impassable
+ - FullTileMask
+ layer:
+ - GlassLayer
- type: Airtight
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml
index b97155eeb6..6119dd59b2 100644
--- a/Resources/Prototypes/Entities/Structures/Windows/window.yml
+++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml
@@ -28,13 +28,10 @@
fixtures:
- shape:
!type:PhysShapeAabb {}
- layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
mask:
- - VaultImpassable
+ - FullTileMask
+ layer:
+ - GlassLayer
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Glass
@@ -121,12 +118,9 @@
bounds: "-0.49,-0.49,0.49,-0.3"
mass: 50
layer:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - GlassLayer
mask:
- - VaultImpassable
+ - FullTileMask
- type: Repairable
- type: Damageable
damageContainer: Inorganic
diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml
index c9cd20583e..841d1839dd 100644
--- a/Resources/Prototypes/Entities/Structures/base_structure.yml
+++ b/Resources/Prototypes/Entities/Structures/base_structure.yml
@@ -14,12 +14,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
- layer:
- - VaultImpassable
mask:
- - Impassable
+ - MachineMask
+ layer:
+ - MidImpassable
+ - LowImpassable
- type: Pullable
- type: Tag
tags:
@@ -45,12 +46,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.45"
+ bounds: "-0.45,-0.45,0.45,0.45"
mass: 50
- layer:
- - SmallImpassable
mask:
- - VaultImpassable
+ - MachineMask
+ layer:
+ - MidImpassable
+ - LowImpassable
- type: Anchorable
- type: Tag
diff --git a/Resources/Prototypes/Entities/Structures/cargo_telepad.yml b/Resources/Prototypes/Entities/Structures/cargo_telepad.yml
index 455ef63e6f..c4f9d8e11e 100644
--- a/Resources/Prototypes/Entities/Structures/cargo_telepad.yml
+++ b/Resources/Prototypes/Entities/Structures/cargo_telepad.yml
@@ -14,12 +14,10 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.00"
+ bounds: "-0.45,-0.45,0.45,0.00"
mass: 25
- layer:
- - Passable
mask:
- - VaultImpassable
+ - MachineMask
- type: Sprite
netsync: false
sprite: Structures/cargo_telepad.rsi
diff --git a/Resources/Prototypes/Entities/Structures/catwalk.yml b/Resources/Prototypes/Entities/Structures/catwalk.yml
index e66b9c6ef7..9d0f64335d 100644
--- a/Resources/Prototypes/Entities/Structures/catwalk.yml
+++ b/Resources/Prototypes/Entities/Structures/catwalk.yml
@@ -7,14 +7,6 @@
mode: SnapgridCenter
components:
- type: Clickable
- - type: Physics
- canCollide: false
- - type: Fixtures
- fixtures:
- - shape:
- !type:PhysShapeAabb
- bounds: "-0.5,-0.5,0.5,0.5"
- layer: [ Passable ]
- type: Sprite
netsync: false
sprite: Structures/catwalk.rsi
@@ -52,6 +44,6 @@
spawn:
PartRodMetal: # takes two to construct, so drop less than that
min: 0
- max: 1
+ max: 1
- !type:DoActsBehavior
- acts: [ "Destruction" ]
\ No newline at end of file
+ acts: [ "Destruction" ]
diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml
index 7ac7db1b81..5253c523e2 100644
--- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml
+++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml
@@ -12,11 +12,11 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.1"
+ bounds: "-0.45,-0.45,0.45,0.1"
mass: 25
hard: true
mask:
- - Impassable
+ - MachineMask
- type: Anchorable
- type: Pullable
- type: Sprite
diff --git a/Resources/Prototypes/Entities/Structures/lighting_ground.yml b/Resources/Prototypes/Entities/Structures/lighting_ground.yml
index cd8df304ec..4929e5c1c1 100644
--- a/Resources/Prototypes/Entities/Structures/lighting_ground.yml
+++ b/Resources/Prototypes/Entities/Structures/lighting_ground.yml
@@ -7,12 +7,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "0.17,0.25,-0.17,-0.30"
+ bounds: "0.17,0.25,-0.17,-0.30"
mass: 25
- layer:
- - MobImpassable
mask:
- - Impassable
+ - MachineMask
+ layer:
+ - MidImpassable
+ - LowImpassable
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
diff --git a/Resources/Prototypes/Entities/Structures/plastic_flaps.yml b/Resources/Prototypes/Entities/Structures/plastic_flaps.yml
index cf8e167ecc..512b365923 100644
--- a/Resources/Prototypes/Entities/Structures/plastic_flaps.yml
+++ b/Resources/Prototypes/Entities/Structures/plastic_flaps.yml
@@ -21,10 +21,11 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
mass: 100
- layer:
- - VaultImpassable
mask:
- - Impassable
+ - TabletopMachineMask
+ layer:
+ - HighImpassable
+ - MidImpassable
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
@@ -56,11 +57,12 @@
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
mass: 100
+ mask:
+ - TabletopMachineMask
layer:
- Opaque
- - VaultImpassable
- mask:
- - Impassable
+ - HighImpassable
+ - MidImpassable
- type: Occluder
sizeX: 32
sizeY: 32
diff --git a/Resources/Prototypes/Entities/Structures/soil.yml b/Resources/Prototypes/Entities/Structures/soil.yml
index af5c537bcc..bfa8385b27 100644
--- a/Resources/Prototypes/Entities/Structures/soil.yml
+++ b/Resources/Prototypes/Entities/Structures/soil.yml
@@ -12,19 +12,13 @@
fixtures:
- shape:
!type:PhysShapeAabb
- bounds: "-0.45,-0.45,0.45,0.1"
+ bounds: "-0.45,-0.45,0.45,0.1"
mass: 25
hard: false
mask:
- - Impassable
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - FullTileMask
layer:
- - Opaque
- - MobImpassable
- - VaultImpassable
- - SmallImpassable
+ - FullTileMask
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic