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