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
This commit is contained in:
Jacob Tong
2022-05-10 17:57:20 -07:00
committed by GitHub
parent 6617310ffa
commit 8c853476fb
141 changed files with 750 additions and 1533 deletions

View File

@@ -77,12 +77,12 @@ namespace Content.IntegrationTests.Tests.Utility
Assert.Null(entity); Assert.Null(entity);
// Other layers are fine // Other layers are fine
Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MobImpassable)); Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MidImpassable));
Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MobImpassable, out entity)); Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, entityCoordinates, CollisionGroup.MidImpassable, out entity));
Assert.NotNull(entity); Assert.NotNull(entity);
Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MobImpassable)); Assert.NotNull(sEntityManager.SpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MidImpassable));
Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MobImpassable, out entity)); Assert.True(sEntityManager.TrySpawnIfUnobstructed(null, mapCoordinates, CollisionGroup.MidImpassable, out entity));
Assert.NotNull(entity); Assert.NotNull(entity);
}); });
} }

View File

@@ -48,9 +48,9 @@ namespace Content.Server.AI.Pathfinding
public const int TrackedCollisionLayers = (int) public const int TrackedCollisionLayers = (int)
(CollisionGroup.Impassable | (CollisionGroup.Impassable |
CollisionGroup.MobImpassable | CollisionGroup.MidImpassable |
CollisionGroup.SmallImpassable | CollisionGroup.LowImpassable |
CollisionGroup.VaultImpassable); CollisionGroup.HighImpassable);
/// <summary> /// <summary>
/// Ask for the pathfinder to gimme somethin /// Ask for the pathfinder to gimme somethin

View File

@@ -60,7 +60,7 @@ namespace Content.Server.Atmos.EntitySystems
{ {
foreach (var (_, fixture) in fixtures.Fixtures) 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) 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? // TODO: Make them dynamic type? Ehh but they still want movement so uhh make it non-predicted like weightless?

View File

@@ -35,7 +35,7 @@ public sealed class ClimbSystem : SharedClimbSystem
[Dependency] private readonly StunSystem _stunSystem = default!; [Dependency] private readonly StunSystem _stunSystem = default!;
private const string ClimbingFixtureName = "climb"; private const string ClimbingFixtureName = "climb";
private const int ClimbingCollisionGroup = (int) CollisionGroup.VaultImpassable; private const int ClimbingCollisionGroup = (int) CollisionGroup.TableLayer;
private readonly Dictionary<EntityUid, List<Fixture>> _fixtureRemoveQueue = new(); private readonly Dictionary<EntityUid, List<Fixture>> _fixtureRemoveQueue = new();

View File

@@ -62,7 +62,7 @@ public sealed partial class TriggerSystem
_fixtures.TryCreateFixture(body, new Fixture(body, component.Shape) _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 // 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
}); });
} }

View File

@@ -26,6 +26,8 @@ namespace Content.Server.Morgue.Components
{ {
[Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IEntityManager _entMan = default!;
private const CollisionGroup TrayCanOpenMask = CollisionGroup.Impassable | CollisionGroup.MidImpassable;
[ViewVariables(VVAccess.ReadWrite)] [ViewVariables(VVAccess.ReadWrite)]
[DataField("trayPrototype", customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))] [DataField("trayPrototype", customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
private string? _trayPrototypeId; private string? _trayPrototypeId;
@@ -69,7 +71,7 @@ namespace Content.Server.Morgue.Components
{ {
if (!EntitySystem.Get<SharedInteractionSystem>().InRangeUnobstructed(Owner, if (!EntitySystem.Get<SharedInteractionSystem>().InRangeUnobstructed(Owner,
_entMan.GetComponent<TransformComponent>(Owner).Coordinates.Offset(_entMan.GetComponent<TransformComponent>(Owner).LocalRotation.GetCardinalDir()), _entMan.GetComponent<TransformComponent>(Owner).Coordinates.Offset(_entMan.GetComponent<TransformComponent>(Owner).LocalRotation.GetCardinalDir()),
collisionMask: CollisionGroup.Impassable | CollisionGroup.VaultImpassable collisionMask: TrayCanOpenMask
)) ))
{ {
if (!silent) if (!silent)

View File

@@ -271,7 +271,7 @@ namespace Content.Server.Shuttles.EntitySystems
{ {
ID = BurnFixture, ID = BurnFixture,
Hard = false, Hard = false,
CollisionLayer = (int) CollisionGroup.MobImpassable CollisionLayer = (int) CollisionGroup.FullTileMask
}; };
_fixtureSystem.TryCreateFixture(physicsComponent, fixture); _fixtureSystem.TryCreateFixture(physicsComponent, fixture);

View File

@@ -42,9 +42,9 @@ namespace Content.Server.Storage.Components
/// Collision masks that get removed when the storage gets opened. /// Collision masks that get removed when the storage gets opened.
/// </summary> /// </summary>
private const int MasksToRemove = (int) ( private const int MasksToRemove = (int) (
CollisionGroup.MobImpassable | CollisionGroup.MidImpassable |
CollisionGroup.VaultImpassable | CollisionGroup.HighImpassable |
CollisionGroup.SmallImpassable); CollisionGroup.LowImpassable);
/// <summary> /// <summary>
/// Collision masks that were removed from ANY layer when the storage was opened; /// Collision masks that were removed from ANY layer when the storage was opened;

View File

@@ -1,12 +1,10 @@
using System;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
using RobustPhysics = Robust.Shared.Physics;
namespace Content.Shared.Physics namespace Content.Shared.Physics;
{
/// <summary> /// <summary>
/// Defined collision groups for the physics system. /// Defined collision groups for the physics system.
/// </summary> /// </summary>
@@ -15,21 +13,50 @@ namespace Content.Shared.Physics
public enum CollisionGroup public enum CollisionGroup
{ {
None = 0, None = 0,
Opaque = 1 << 0, // 1 Blocks light, for lasers Opaque = 1 << 0, // 1 Blocks light, can be hit by lasers
Impassable = 1 << 1, // 2 Walls, objects impassable by any means Impassable = 1 << 1, // 2 Walls, objects impassable by any means
MobImpassable = 1 << 2, // 4 Mobs, players, crabs, etc MidImpassable = 1 << 2, // 4 Mobs, players, crabs, etc
VaultImpassable = 1 << 3, // 8 Things that cannot be jumped over, not half walls or tables HighImpassable = 1 << 3, // 8 Things on top of tables and things that block tall/large mobs.
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 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 GhostImpassable = 1 << 5, // 32 Things impassible by ghosts/observers, ie blessed tiles or forcefields
Underplating = 1 << 6, // 64 Things that are under plating BulletImpassable = 1 << 6, // 64 Can be hit by bullets
[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. MapGrid = MapGridHelpers.CollisionGroup, // Map grids, like shuttles. This is the actual grid itself, not the walls or other entities connected to the grid.
MobMask = Impassable | MobImpassable | VaultImpassable | SmallImpassable,
ThrownItem = VaultImpassable,
// 32 possible groups // 32 possible groups
AllMask = -1, 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
} }

View File

@@ -17,11 +17,11 @@ namespace Content.Shared.Standing
public bool Standing { get; set; } = true; public bool Standing { get; set; } = true;
/// <summary> /// <summary>
/// List of fixtures that had vault-impassable prior to an entity being downed. Required when re-adding the /// List of fixtures that had their collision mask changed when the entity was downed.
/// collision mask. /// Required for re-adding the collision mask.
/// </summary> /// </summary>
[DataField("vaultImpassableFixtures")] [DataField("changedFixtures")]
public List<string> VaultImpassableFixtures = new(); public List<string> ChangedFixtures = new();
public override ComponentState GetComponentState() public override ComponentState GetComponentState()
{ {

View File

@@ -13,6 +13,9 @@ namespace Content.Shared.Standing
{ {
[Dependency] private readonly IGameTiming _gameTiming = default!; [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) public bool IsDown(EntityUid uid, StandingStateComponent? standingState = null)
{ {
if (!Resolve(uid, ref standingState, false)) if (!Resolve(uid, ref standingState, false))
@@ -61,15 +64,16 @@ namespace Content.Shared.Standing
// Seemed like the best place to put it // Seemed like the best place to put it
appearance?.SetData(RotationVisuals.RotationState, RotationState.Horizontal); 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)) if (TryComp(uid, out FixturesComponent? fixtureComponent))
{ {
foreach (var (key, fixture) in fixtureComponent.Fixtures) foreach (var (key, fixture) in fixtureComponent.Fixtures)
{ {
if ((fixture.CollisionMask & (int) CollisionGroup.VaultImpassable) == 0) if ((fixture.CollisionMask & StandingCollisionLayer) == 0)
continue; continue;
standingState.VaultImpassableFixtures.Add(key); standingState.ChangedFixtures.Add(key);
fixture.CollisionMask &= ~(int) CollisionGroup.VaultImpassable; fixture.CollisionMask &= ~StandingCollisionLayer;
} }
} }
@@ -111,13 +115,13 @@ namespace Content.Shared.Standing
if (TryComp(uid, out FixturesComponent? fixtureComponent)) 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)) if (fixtureComponent.Fixtures.TryGetValue(key, out var fixture))
fixture.CollisionMask |= (int) CollisionGroup.VaultImpassable; fixture.CollisionMask |= StandingCollisionLayer;
} }
} }
standingState.VaultImpassableFixtures.Clear(); standingState.ChangedFixtures.Clear();
return true; return true;
} }

View File

@@ -704,8 +704,8 @@ entities:
radius: 0.35 radius: 0.35
mask: mask:
- Impassable - Impassable
- MobImpassable - MidImpassable
- SmallImpassable - LowImpassable
layer: layer:
- Opaque - Opaque
mass: 70 mass: 70
@@ -956,8 +956,8 @@ entities:
radius: 0.35 radius: 0.35
mask: mask:
- Impassable - Impassable
- MobImpassable - MidImpassable
- SmallImpassable - LowImpassable
layer: layer:
- Opaque - Opaque
mass: 70 mass: 70
@@ -1208,8 +1208,8 @@ entities:
radius: 0.35 radius: 0.35
mask: mask:
- Impassable - Impassable
- MobImpassable - MidImpassable
- SmallImpassable - LowImpassable
layer: layer:
- Opaque - Opaque
mass: 70 mass: 70

View File

@@ -9898,23 +9898,6 @@ entities:
- pos: 26.5,6.5 - pos: 26.5,6.5
parent: 30 parent: 30
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -13813,23 +13796,6 @@ entities:
- pos: 13.5,18.5 - pos: 13.5,18.5
parent: 30 parent: 30
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -18755,23 +18721,6 @@ entities:
- pos: -2.5,24.5 - pos: -2.5,24.5
parent: 30 parent: 30
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -39982,23 +39982,6 @@ entities:
- pos: -27.5,2.5 - pos: -27.5,2.5
parent: 59 parent: 59
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -54822,23 +54805,6 @@ entities:
- containers: - containers:
- EntityStorageComponent - EntityStorageComponent
type: Construction 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -94686,23 +94652,6 @@ entities:
- pos: 10.5,-68.5 - pos: 10.5,-68.5
parent: 59 parent: 59
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -110524,23 +110524,6 @@ entities:
- pos: -55.5,5.5 - pos: -55.5,5.5
parent: 105 parent: 105
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -130394,23 +130377,6 @@ entities:
- pos: 8.5,12.5 - pos: 8.5,12.5
parent: 105 parent: 105
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -93087,23 +93087,6 @@ entities:
- pos: -56.5,17.5 - pos: -56.5,17.5
parent: 49 parent: 49
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -7271,36 +7271,6 @@ entities:
type: Transform type: Transform
- locked: False - locked: False
type: Lock 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 - uid: 693
type: TableWood type: TableWood
components: components:
@@ -7327,23 +7297,6 @@ entities:
type: Transform type: Transform
- locked: False - locked: False
type: Lock 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -7364,23 +7317,6 @@ entities:
type: Transform type: Transform
- locked: False - locked: False
type: Lock 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -7401,23 +7337,6 @@ entities:
type: Transform type: Transform
- locked: False - locked: False
type: Lock 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -35461,23 +35461,6 @@ entities:
- pos: -38.5,56.5 - pos: -38.5,56.5
parent: 17 parent: 17
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:
@@ -197474,23 +197457,6 @@ entities:
- pos: -27.5,-30.5 - pos: -27.5,-30.5
parent: 17 parent: 17
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -88173,23 +88173,6 @@ entities:
- pos: -0.5,-0.5 - pos: -0.5,-0.5
parent: 8644 parent: 8644
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -823,23 +823,6 @@ entities:
- pos: -11.5,21.5 - pos: -11.5,21.5
parent: 854 parent: 854
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -226804,23 +226804,6 @@ entities:
- pos: 21.5,-29.5 - pos: 21.5,-29.5
parent: 71 parent: 71
type: Transform 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 - isPlaceable: False
type: PlaceableSurface type: PlaceableSurface
- containers: - containers:

View File

@@ -49,8 +49,10 @@
shape: shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mask:
- ItemMask
layer: layer:
- MobImpassable - SlipLayer
- type: FoamSolutionAreaEffect - type: FoamSolutionAreaEffect
- type: SolutionContainerManager - type: SolutionContainerManager
solutions: solutions:
@@ -70,15 +72,6 @@
layers: layers:
- state: mfoam - state: mfoam
map: ["enum.FoamVisualLayers.Base"] 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 - type: Appearance
visuals: visuals:
- type: FoamVisualizer - type: FoamVisualizer
@@ -98,15 +91,6 @@
layers: layers:
- state: mfoam - state: mfoam
map: ["enum.FoamVisualLayers.Base"] 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 - type: Appearance
visuals: visuals:
- type: FoamVisualizer - type: FoamVisualizer
@@ -138,11 +122,9 @@
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
layer: layer:
- Opaque - WallLayer
- Impassable mask:
- MobImpassable - WallLayer
- VaultImpassable
- SmallImpassable
- type: Occluder - type: Occluder
sizeX: 32 sizeX: 32
sizeY: 32 sizeY: 32

View File

@@ -20,10 +20,10 @@
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
layer:
- SmallImpassable
mask: mask:
- SmallImpassable - ItemMask
layer:
- SlipLayer
hard: false hard: false
- type: Appearance - type: Appearance
visuals: visuals:

View File

@@ -26,11 +26,9 @@
radius: 0.25 radius: 0.25
mass: 5 mass: 5
mask: mask:
- Impassable - FlyingMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - FlyingMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -90,11 +88,9 @@
radius: 0.1 radius: 0.1
mass: 5 mass: 5
mask: mask:
- Impassable - FlyingMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - FlyingMobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}
@@ -291,11 +287,9 @@
radius: 0.2 radius: 0.2
mass: 5 mass: 5
mask: mask:
- Impassable - FlyingMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - FlyingMobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}
@@ -341,11 +335,9 @@
radius: 0.40 radius: 0.40
mass: 45 mass: 45
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -400,11 +392,9 @@
radius: 0.35 radius: 0.35
mass: 5 mass: 5
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets!?
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -518,11 +508,9 @@
radius: 0.48 radius: 0.48
mass: 20 mass: 20
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -559,11 +547,9 @@
radius: 0.25 radius: 0.25
mass: 60 mass: 60
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -686,10 +672,9 @@
radius: 0.2 radius: 0.2
mass: 10 mass: 10
mask: mask:
- SmallImpassable - SmallMobMask
- MobImpassable
layer: layer:
- Opaque - SmallMobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}
@@ -829,11 +814,9 @@
radius: 0.2 radius: 0.2
mass: 5 mass: 5
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -879,11 +862,9 @@
radius: 0.2 radius: 0.2
mass: 5 mass: 5
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -924,11 +905,9 @@
radius: 0.2 radius: 0.2
mass: 2 mass: 2
mask: mask:
- Impassable - SmallMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - SmallMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -972,11 +951,9 @@
radius: 0.25 radius: 0.25
mass: 5 mass: 5
mask: mask:
- Impassable - FlyingMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - FlyingMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1017,11 +994,9 @@
radius: 0.25 radius: 0.25
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1068,11 +1043,9 @@
radius: 0.25 radius: 0.25
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1125,11 +1098,9 @@
radius: 0.25 radius: 0.25
mass: 8 mass: 8
mask: mask:
- Impassable - SmallMobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - SmallMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: RotationVisualizer - type: RotationVisualizer
@@ -1175,11 +1146,9 @@
radius: 0.35 radius: 0.35
mass: 25 mass: 25
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1240,12 +1209,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1299,12 +1265,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -1358,12 +1321,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer

View File

@@ -24,11 +24,9 @@
radius: 0.5 radius: 0.5
mass: 100 mass: 100
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: MovementIgnoreGravity - type: MovementIgnoreGravity
- type: MobState - type: MobState
thresholds: thresholds:

View File

@@ -25,11 +25,9 @@
radius: 0.40 radius: 0.40
mass: 20 mass: 20
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}
@@ -107,9 +105,7 @@
radius: 0.40 radius: 0.40
mass: 5 mass: 5
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - Opaque
- type: GhostTakeoverAvailable - type: GhostTakeoverAvailable

View File

@@ -30,13 +30,9 @@
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 100 mass: 100
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- type: CharacterInfo - type: CharacterInfo
- type: HumanoidAppearance - type: HumanoidAppearance
- type: AnimationPlayer - type: AnimationPlayer

View File

@@ -21,11 +21,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -224,11 +222,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -376,11 +372,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -421,12 +415,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -478,12 +469,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -524,12 +512,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
- VaultImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer
@@ -604,12 +589,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- Impassable - MobMask
- MobImpassable
- SmallImpassable
- VaultImpassable
layer: layer:
- Opaque - MobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer

View File

@@ -52,12 +52,9 @@
radius: 0.35 radius: 0.35
mass: 20 mass: 20
mask: mask:
- Impassable - MobMask
- MobImpassable #Bullets?!
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: SolutionContainerManager - type: SolutionContainerManager
- type: Bloodstream - type: Bloodstream
bloodlossDamage: bloodlossDamage:

View File

@@ -29,11 +29,9 @@
radius: 0.20 radius: 0.20
mass: 2.5 mass: 2.5
mask: mask:
- Impassable - SmallMobMask
- MobImpassable
- SmallImpassable
layer: layer:
- Opaque - SmallMobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}

View File

@@ -34,12 +34,9 @@
radius: 0.35 radius: 0.35
mass: 120 mass: 120
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: MobState - type: MobState
thresholds: thresholds:
0: !type:NormalMobState {} 0: !type:NormalMobState {}

View File

@@ -43,9 +43,9 @@
radius: 0.35 radius: 0.35
mass: 10 mass: 10
mask: mask:
- VaultImpassable - FlyingMobMask
layer: layer:
- Opaque - FlyingMobLayer
- type: Damageable - type: Damageable
damageContainer: Biological damageContainer: Biological
- type: MobState - type: MobState

View File

@@ -36,12 +36,9 @@
radius: 0.35 radius: 0.35
mass: 20 mass: 20
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: MovementSpeedModifier - type: MovementSpeedModifier
baseWalkSpeed : 4 baseWalkSpeed : 4
baseSprintSpeed : 3 baseSprintSpeed : 3
@@ -135,10 +132,9 @@
radius: 0.35 radius: 0.35
mass: 20 mass: 20
mask: mask:
- SmallImpassable - SmallMobMask
- MobImpassable
layer: layer:
- Opaque - SmallMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: GenericEnumVisualizer - type: GenericEnumVisualizer
@@ -215,12 +211,9 @@
radius: 1 radius: 1
mass: 500 mass: 500
mask: mask:
- SmallImpassable - LargeMobMask
- MobImpassable
- VaultImpassable
- Impassable
layer: layer:
- Opaque - LargeMobLayer
- type: Appearance - type: Appearance
visuals: visuals:
- type: DamageStateVisualizer - type: DamageStateVisualizer

View File

@@ -191,12 +191,9 @@
mass: 70 mass: 70
restitution: 0.0 restitution: 0.0
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: AtmosExposed - type: AtmosExposed
- type: Flammable - type: Flammable
fireSpread: true fireSpread: true
@@ -425,12 +422,9 @@
mass: 70 mass: 70
restitution: 0.0 restitution: 0.0
mask: mask:
- Impassable - MobMask
- MobImpassable
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MobLayer
- type: HumanoidAppearance - type: HumanoidAppearance
- type: Body - type: Body
template: HumanoidTemplate template: HumanoidTemplate

View File

@@ -191,13 +191,13 @@
id: "slips" id: "slips"
hard: false hard: false
layer: layer:
- SmallImpassable - SlipLayer
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.2,-0.2,0.2,0.2" bounds: "-0.2,-0.2,0.2,0.2"
mass: 5 mass: 5
mask: mask:
- SmallImpassable - ItemMask
- type: Tag - type: Tag
tags: tags:
- Recyclable - Recyclable

View File

@@ -16,8 +16,8 @@
radius: 0.4 radius: 0.4
mass: 500 mass: 500
layer: layer:
- HalfWallLayer
- Opaque - Opaque
- VaultImpassable
- type: Climbable - type: Climbable
- type: entity - type: entity
@@ -39,8 +39,7 @@
bounds: "-0.35,-1.3,0.35,-0.5" bounds: "-0.35,-1.3,0.35,-0.5"
mass: 500 mass: 500
layer: layer:
- Opaque - WallLayer
- Impassable
- type: entity - type: entity
parent: BaseTree parent: BaseTree
@@ -56,8 +55,7 @@
bounds: "-0.1,-1.0,0.1,-0.4" bounds: "-0.1,-1.0,0.1,-0.4"
mass: 500 mass: 500
layer: layer:
- Opaque - WallLayer
- Impassable
- type: entity - type: entity
parent: BaseTree parent: BaseTree
@@ -73,8 +71,7 @@
bounds: "-0.18,-1.9,0.18,-1.2" bounds: "-0.18,-1.9,0.18,-1.2"
mass: 500 mass: 500
layer: layer:
- Opaque - WallLayer
- Impassable
- type: entity - type: entity
parent: BaseTree parent: BaseTree
@@ -90,8 +87,7 @@
bounds: "-0.1,-1.5,0.1,-0.8" bounds: "-0.1,-1.5,0.1,-0.8"
mass: 500 mass: 500
layer: layer:
- Opaque - WallLayer
- Impassable
- type: entity - type: entity
parent: BaseRock parent: BaseRock
@@ -315,8 +311,7 @@
bounds: "-0.8,-1.5,0.8,-0.8" bounds: "-0.8,-1.5,0.8,-0.8"
mass: 500 mass: 500
layer: layer:
- Opaque - WallLayer
- Impassable
- type: entity - type: entity
parent: BaseTreeConifer parent: BaseTreeConifer

View File

@@ -18,10 +18,10 @@
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.45 radius: 0.45
mass: 150 mass: 150
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - MachineMask
layer:
- HalfWallLayer
- type: Nuke - type: Nuke
# ~50 tile radius in open space # ~50 tile radius in open space
# close to defaulkt max cap. # close to defaulkt max cap.
@@ -65,10 +65,10 @@
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.45 radius: 0.45
mass: 150 mass: 150
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - TabletopMachineMask
layer:
- TabletopMachineLayer
- type: SolutionContainerManager - type: SolutionContainerManager
solutions: solutions:
tank: tank:

View File

@@ -205,13 +205,13 @@
id: "slips" id: "slips"
hard: false hard: false
layer: layer:
- SmallImpassable - SlipLayer
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3" bounds: "-0.4,-0.3,0.4,0.3"
mass: 2.5 mass: 2.5
mask: mask:
- SmallImpassable - ItemMask
- type: entity - type: entity
parent: BasePDA parent: BasePDA

View File

@@ -84,6 +84,7 @@
visible: false visible: false
map: [ "light" ] map: [ "light" ]
- type: Physics - type: Physics
canCollide: true
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
@@ -91,10 +92,9 @@
bounds: "-0.2, -0.5, 0.2, 0.5" bounds: "-0.2, -0.5, 0.2, 0.5"
mass: 20 mass: 20
mask: mask:
- Impassable - MachineMask
layer: layer:
- Opaque - MachineLayer
- Impassable
- type: PointLight - type: PointLight
enabled: false enabled: false
radius: 8 radius: 8
@@ -153,10 +153,10 @@
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb
bounds: "-0.2, -0.5, 0.2, 0.5"
mass: 20
mask:
- MachineMask
layer: layer:
- Opaque - MachineLayer
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable

View File

@@ -18,10 +18,7 @@
bounds: "-0.5,-0.5,0.5,0.5" bounds: "-0.5,-0.5,0.5,0.5"
mass: 15 mass: 15
layer: layer:
- Impassable - WallLayer
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
damageModifierSet: Inflatable damageModifierSet: Inflatable
@@ -62,10 +59,7 @@
bounds: "-0.5,-0.5,0.5,0.5" bounds: "-0.5,-0.5,0.5,0.5"
mass: 15 mass: 15
layer: layer:
- Impassable - WallLayer
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Door - type: Door
openSound: openSound:
path: /Audio/Misc/zip.ogg path: /Audio/Misc/zip.ogg

View File

@@ -27,7 +27,7 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5" bounds: "-0.5,-0.5,0.5,0.5"
layer: layer:
- MobImpassable - MidImpassable
- type: Damageable - type: Damageable
damageModifierSet: Wood damageModifierSet: Wood
- type: Destructible - type: Destructible

View File

@@ -24,8 +24,7 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.2,0.25,0.1" bounds: "-0.35,-0.2,0.25,0.1"
mask: mask:
- Impassable - ItemMask
- VaultImpassable
- type: Appearance - type: Appearance
visuals: visuals:
- type: StackVisualizer - type: StackVisualizer

View File

@@ -62,9 +62,9 @@
bounds: "-0.25,-0.40,0.25,0.25" bounds: "-0.25,-0.40,0.25,0.25"
mass: 20 mass: 20
mask: mask:
- Impassable - MobMask
layer: layer:
- Opaque - MobLayer
- type: Pullable - type: Pullable
- type: entity - type: entity
@@ -124,11 +124,11 @@
- shape: - shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.3 radius: 0.3
layer:
- SmallImpassable
mask:
- VaultImpassable
mass: 100 mass: 100
layer:
- MobLayer
mask:
- MobMask
- type: Spillable - type: Spillable
- type: SolutionContainerManager - type: SolutionContainerManager
solutions: solutions:

View File

@@ -28,13 +28,13 @@
id: "slips" id: "slips"
hard: false hard: false
layer: layer:
- SmallImpassable - SlipLayer
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3" bounds: "-0.4,-0.3,0.4,0.3"
mass: 5 mass: 5
mask: mask:
- SmallImpassable - ItemMask
- type: entity - type: entity
name: soap name: soap

View File

@@ -92,10 +92,7 @@
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
hard: false hard: false
mask: mask:
- Opaque - FullTileMask
- Impassable
- MobImpassable
- SmallImpassable
- type: Appearance - type: Appearance
visuals: visuals:
- type: VaporVisualizer - type: VaporVisualizer

View File

@@ -4,6 +4,8 @@
description: A deployable barrier. Swipe your ID card to lock/unlock it. description: A deployable barrier. Swipe your ID card to lock/unlock it.
parent: BaseStructure parent: BaseStructure
components: components:
- type: Transform
noRot: true
- type: Sprite - type: Sprite
sprite: Objects/Specific/Security/barrier.rsi sprite: Objects/Specific/Security/barrier.rsi
netsync: false netsync: false
@@ -15,14 +17,11 @@
- shape: - shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.45 radius: 0.45
layer:
- Opaque
- Impassable
- VaultImpassable
- SmallImpassable
mask:
- Impassable
mass: 150 mass: 150
mask:
- MachineMask
layer:
- WallLayer
- type: AccessReader - type: AccessReader
access: [["Security"]] access: [["Security"]]
- type: Lock - type: Lock

View File

@@ -32,11 +32,9 @@
radius: 0.45 radius: 0.45
mass: 150 mass: 150
mask: mask:
- Impassable - MachineMask
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- SmallImpassable
- type: Icon - type: Icon
sprite: Structures/Storage/Crates/artifact.rsi sprite: Structures/Storage/Crates/artifact.rsi
state: artifact_container_icon state: artifact_container_icon

View File

@@ -21,9 +21,9 @@
radius: 0.45 radius: 0.45
mass: 150 mass: 150
layer: layer:
- SmallImpassable - WallLayer
mask: mask:
- VaultImpassable - MachineMask
- type: InteractionOutline - type: InteractionOutline
- type: Artifact - type: Artifact
- type: RandomArtifactSprite - type: RandomArtifactSprite

View File

@@ -29,20 +29,21 @@
target: MobMonkey target: MobMonkey
- type: CollisionWake - type: CollisionWake
enabled: false enabled: false
- type: Physics
bodyType: KinematicController
- type: Fixtures - type: Fixtures
fixtures: # TODO: Make a second fixture. fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3" bounds: "-0.4,-0.3,0.4,0.3"
mass: 2.5 mass: 2.5
mask:
- ItemMask
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.3,0.4,0.3"
id: "rehydrate"
hard: false hard: false
layer: layer:
- SmallImpassable - LowImpassable
mask:
- Impassable
- MobImpassable
- type: entity - type: entity
parent: PlushieCarp parent: PlushieCarp
@@ -78,9 +79,12 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 2.5 mass: 2.5
mask:
- ItemMask
- shape:
!type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4"
id: "rehydrate"
hard: false hard: false
layer: layer:
- SmallImpassable - LowImpassable
mask:
- Impassable
- MobImpassable

View File

@@ -29,16 +29,6 @@
interfaces: interfaces:
- key: enum.TransferAmountUiKey.Key - key: enum.TransferAmountUiKey.Key
type: TransferAmountBoundUserInterface 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 - type: Spillable
solution: bucket solution: bucket
- type: DrawableSolution - type: DrawableSolution

View File

@@ -31,10 +31,9 @@
mass: 180 mass: 180
restitution: 0.0 restitution: 0.0
mask: mask:
- Impassable - MobMask
- VaultImpassable
layer: layer:
- VaultImpassable - MobLayer
- type: VehicleVisuals - type: VehicleVisuals
- type: Appearance - type: Appearance
- type: Repairable - type: Repairable

View File

@@ -34,8 +34,7 @@
hard: true hard: true
# Didn't use MapGrid for now as the bounds are stuffed. # Didn't use MapGrid for now as the bounds are stuffed.
layer: layer:
- Impassable - LargeMobLayer
- SmallImpassable
- VaultImpassable
mask: mask:
- Impassable - Impassable
- BulletImpassable

View File

@@ -23,8 +23,7 @@
hard: false hard: false
mask: mask:
- Impassable - Impassable
layer: - BulletImpassable
- MobImpassable
- type: Projectile - type: Projectile
damage: damage:
types: types:
@@ -50,8 +49,7 @@
hard: false hard: false
mask: mask:
- Impassable - Impassable
layer: - BulletImpassable
- MobImpassable
- type: entity - type: entity
id: BulletBaseFlash id: BulletBaseFlash
@@ -129,8 +127,7 @@
hard: false hard: false
mask: mask:
- Impassable - Impassable
layer: - BulletImpassable
- MobImpassable
- type: Ammo - type: Ammo
isProjectile: true isProjectile: true
ammoVelocity: 20 ammoVelocity: 20
@@ -163,6 +160,7 @@
bounds: "-0.2,-0.2,0.2,0.2" bounds: "-0.2,-0.2,0.2,0.2"
hard: false hard: false
mask: mask:
- Impassable
- Opaque - Opaque
- type: Projectile - type: Projectile
damage: damage:

View File

@@ -83,11 +83,9 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.15,-0.3,0.15,0.3" bounds: "-0.15,-0.3,0.15,0.3"
mask: mask:
- Impassable - MachineMask
- VaultImpassable
- SmallImpassable
layer: layer:
- MobImpassable - MachineLayer
mass: 70 mass: 70
- type: Appearance - type: Appearance
- type: AnimationPlayer - type: AnimationPlayer

View File

@@ -27,8 +27,7 @@
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5 mass: 5
mask: mask:
- Impassable - ItemMask
- SmallImpassable
restitution: 0.3 # fite me restitution: 0.3 # fite me
friction: 0.2 friction: 0.2
- type: Sprite - type: Sprite

View File

@@ -18,13 +18,12 @@
radius: 0.2 radius: 0.2
mass: 25 mass: 25
mask: mask:
- SmallImpassable - MachineMask
- VaultImpassable
layer: layer:
- Opaque - Opaque
- MobImpassable - MidImpassable
- SmallImpassable - HighImpassable
- VaultImpassable - BulletImpassable
- type: InteractionOutline - type: InteractionOutline
- type: entity - type: entity

View File

@@ -19,13 +19,9 @@
bounds: "-0.4,-0.3,0.4,0.3" bounds: "-0.4,-0.3,0.4,0.3"
mass: 25 mass: 25
mask: mask:
- Impassable - TabletopMachineMask
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - TabletopMachineLayer
- MobImpassable
- SmallImpassable
- type: ApcPowerReceiver - type: ApcPowerReceiver
- type: ExtensionCableReceiver - type: ExtensionCableReceiver
- type: ActivatableUI - type: ActivatableUI

View File

@@ -10,19 +10,6 @@
drawdepth: SmallObjects drawdepth: SmallObjects
state: booze state: booze
netsync: false 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 - type: ReagentDispenser
pack: BoozeDispenserInventory pack: BoozeDispenserInventory
emagPack: BoozeDispenserEmagInventory emagPack: BoozeDispenserEmagInventory

View File

@@ -10,19 +10,6 @@
drawdepth: SmallObjects drawdepth: SmallObjects
state: soda state: soda
netsync: false 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 - type: ReagentDispenser
pack: SodaDispenserInventory pack: SodaDispenserInventory
emagPack: SodaDispenserEmagInventory emagPack: SodaDispenserEmagInventory

View File

@@ -87,9 +87,6 @@
components: components:
- type: Door - type: Door
occludes: false occludes: false
crushDamage:
types:
Blunt: 15
- type: Occluder - type: Occluder
enabled: false enabled: false
- type: Sprite - type: Sprite
@@ -101,10 +98,9 @@
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 mass: 100
mask: mask:
- Impassable - FullTileMask
layer: #removed opaque from the layer, allowing lasers to pass through glass airlocks layer: #removed opaque from the layer, allowing lasers to pass through glass airlocks
- Impassable - GlassAirlockLayer
- VaultImpassable
- type: Construction - type: Construction
graph: Airlock graph: Airlock
node: glassAirlock node: glassAirlock

View File

@@ -18,10 +18,9 @@
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 100 mass: 100
mask: mask:
- MobMask - FullTileMask
layer: layer:
- MobImpassable - HumanoidBlockLayer
- VaultImpassable
- type: Anchorable - type: Anchorable
delay: 2 delay: 2
- type: Pullable - type: Pullable

View File

@@ -32,11 +32,9 @@
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 mass: 100
mask: mask:
- Impassable - FullTileMask
layer: layer:
- Opaque - AirlockLayer
- Impassable
- VaultImpassable
- type: Door - type: Door
board: DoorElectronics board: DoorElectronics
crushDamage: crushDamage:

View File

@@ -48,13 +48,10 @@
!type:PhysShapeAabb !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
mask: mask:
- MobImpassable
layer:
- Opaque
- Impassable - Impassable
- MobImpassable - HighImpassable
- VaultImpassable layer:
- SmallImpassable - AirlockLayer
- type: Door - type: Door
openDrawDepth: WallTops openDrawDepth: WallTops
closeTimeOne: 0.1 closeTimeOne: 0.1
@@ -92,6 +89,7 @@
type: WiresBoundUserInterface type: WiresBoundUserInterface
- type: Airtight - type: Airtight
fixVacuum: true fixVacuum: true
- type: Occluder
- type: Construction - type: Construction
graph: Firelock graph: Firelock
node: Firelock node: Firelock
@@ -103,6 +101,20 @@
components: components:
- type: Sprite - type: Sprite
sprite: Structures/Doors/Airlocks/Glass/firelock.rsi 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 - type: entity
id: FirelockEdge id: FirelockEdge
@@ -122,10 +134,11 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.2" # don't want this colliding with walls or they won't close bounds: "-0.49,-0.49,0.49,-0.2" # don't want this colliding with walls or they won't close
mask: mask:
- MobImpassable
layer:
- Opaque
- Impassable - Impassable
- MobImpassable - HighImpassable
- VaultImpassable layer:
- SmallImpassable - GlassAirlockLayer
- type: Occluder
enabled: false
- type: Door
occludes: false

View File

@@ -30,9 +30,11 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 50 mass: 50
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - Impassable
- HighImpassable
layer:
- HighImpassable
- MidImpassable
- type: Transform - type: Transform
noRot: true noRot: true

View File

@@ -20,13 +20,9 @@
bounds: "-0.49,-0.49,0.49,0.49" bounds: "-0.49,-0.49,0.49,0.49"
mass: 100 mass: 100
mask: mask:
- MobImpassable - FullTileMask
layer: layer:
- Opaque - AirlockLayer
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Door - type: Door
bumpOpen: false bumpOpen: false
clickOpen: true clickOpen: true

View File

@@ -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 bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
mass: 100 mass: 100
mask: mask:
- MobImpassable - FullTileMask
layer: layer:
- Opaque - AirlockLayer
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
- type: Door - type: Door
board: DoorElectronics board: DoorElectronics
bumpOpen: false bumpOpen: false
@@ -182,9 +178,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 50 mass: 50
layer:
- Opaque
mask: mask:
- VaultImpassable - Impassable
- HighImpassable
layer:
- HighImpassable
- type: Transform - type: Transform
noRot: true noRot: true

View File

@@ -19,7 +19,7 @@
mass: 30 mass: 30
mask: mask:
- Impassable - Impassable
- VaultImpassable - HighImpassable
- type: Anchorable - type: Anchorable
- type: Pullable - type: Pullable
- type: Rotatable - type: Rotatable

View File

@@ -13,13 +13,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,-0.3" bounds: "-0.49,-0.49,0.49,-0.3"
mass: 50 mass: 50
layer:
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable
mask: mask:
- VaultImpassable - TabletopMachineMask
layer:
- GlassAirlockLayer
- type: Sprite - type: Sprite
netsync: false netsync: false
sprite: Structures/Doors/Windoors/windoor.rsi sprite: Structures/Doors/Windoors/windoor.rsi

View File

@@ -15,12 +15,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 50 mass: 50
mask: # tables should collide with other tables
- TableMask
layer: layer:
- VaultImpassable - TableLayer
mask:
- Impassable
- VaultImpassable # tables should collide with other tables
- SmallImpassable
- type: Sprite - type: Sprite
netsync: false netsync: false
- type: Icon - type: Icon

View File

@@ -16,8 +16,9 @@
bounds: "-0.40,-0.30,0.40,0.45" bounds: "-0.40,-0.30,0.40,0.45"
mass: 50 mass: 50
mask: mask:
- Impassable - TableMask
- SmallImpassable layer:
- TableLayer
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
damageModifierSet: Metallic damageModifierSet: Metallic
@@ -61,8 +62,9 @@
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 50 mass: 50
mask: mask:
- Impassable - MachineMask
- SmallImpassable layer:
- HalfWallLayer
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
damageModifierSet: Wood damageModifierSet: Wood
@@ -106,8 +108,9 @@
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 50 mass: 50
mask: mask:
- Impassable - MachineMask
- SmallImpassable layer:
- HalfWallLayer
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
damageModifierSet: Metallic damageModifierSet: Metallic

View File

@@ -20,7 +20,7 @@
bounds: "-0.45,-0.45,0.45,0.05" bounds: "-0.45,-0.45,0.45,0.05"
mass: 25 mass: 25
mask: mask:
- SmallImpassable - TableMask
- type: Sprite - type: Sprite
sprite: Structures/Furniture/furniture.rsi sprite: Structures/Furniture/furniture.rsi
state: bed state: bed

View File

@@ -18,11 +18,6 @@
- type: Physics - type: Physics
canCollide: false canCollide: false
- type: Fixtures - type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb {}
layer:
- Passable
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
- type: Destructible - type: Destructible
@@ -136,14 +131,6 @@
state: chapel state: chapel
- type: Tag - type: Tag
tags: [ Carpet ] tags: [ Carpet ]
- type: Physics
canCollide: false
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb {}
layer:
- Passable
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
- type: Destructible - type: Destructible

View File

@@ -15,10 +15,9 @@
- shape: - shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.2 radius: 0.2
mask:
- Impassable
- VaultImpassable
mass: 10 mass: 10
mask:
- TableMask
- type: Sprite - type: Sprite
sprite: Structures/Furniture/chairs.rsi sprite: Structures/Furniture/chairs.rsi
noRot: true noRot: true

View File

@@ -1,4 +1,4 @@
- type: entity - type: entity
name: baseinstrument name: baseinstrument
id: BasePlaceableInstrument id: BasePlaceableInstrument
parent: BaseStructureDynamic parent: BaseStructureDynamic
@@ -35,10 +35,15 @@
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.45 radius: 0.45
mass: 50 mass: 50
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - Impassable
- HighImpassable
- MidImpassable
layer:
- Opaque
- HighImpassable
- MidImpassable
- BulletImpassable
- type: Transform - type: Transform
anchored: true anchored: true

View File

@@ -15,8 +15,8 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.20" bounds: "-0.45,-0.45,0.45,0.20"
mass: 50 mass: 50
layer:
- SmallImpassable
mask: mask:
- Impassable - FullTileMask
layer:
- WallLayer
- type: InteractionOutline - type: InteractionOutline

View File

@@ -18,6 +18,7 @@
- Impassable - Impassable
layer: layer:
- Opaque - Opaque
- BulletImpassable
- type: Sprite - type: Sprite
drawdepth: Overdoors drawdepth: Overdoors
offset: "0.0,0.3" offset: "0.0,0.3"
@@ -69,19 +70,6 @@
components: components:
- type: Sprite - type: Sprite
state: plant-25 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 - type: entity
id: PottedPlantBioluminscent id: PottedPlantBioluminscent

View File

@@ -27,10 +27,7 @@
radius: 0.35 radius: 0.35
mass: 30 mass: 30
mask: mask:
- Impassable - MobMask
- SmallImpassable
layer:
- Opaque
- type: Damageable - type: Damageable
- type: Destructible - type: Destructible
thresholds: thresholds:

View File

@@ -422,7 +422,7 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 50 mass: 50
layer:
- SmallImpassable
mask: mask:
- Impassable - TabletopMachineMask
layer:
- TabletopMachineLayer

View File

@@ -14,12 +14,9 @@
bounds: "-0.25,-0.5,0.25,0.5" bounds: "-0.25,-0.5,0.25,0.5"
mass: 25 mass: 25
mask: mask:
- MobMask - MachineMask
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- SmallImpassable
- VaultImpassable
- type: InteractionOutline - type: InteractionOutline
- type: Rotatable - type: Rotatable
- type: Anchorable - type: Anchorable

View File

@@ -16,11 +16,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 25 mass: 25
layer:
- MobMask
- Opaque
mask: mask:
- MobMask - MachineMask
layer:
- MachineLayer
- type: Damageable - type: Damageable
damageContainer: Inorganic damageContainer: Inorganic
damageModifierSet: Metallic damageModifierSet: Metallic

View File

@@ -31,10 +31,9 @@
bounds: "-0.25,-0.4,0.25,0.4" bounds: "-0.25,-0.4,0.25,0.4"
mass: 25 mass: 25
mask: mask:
- SmallImpassable - MachineMask
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger: - trigger:

View File

@@ -18,11 +18,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5" bounds: "-0.25,-0.5,0.25,0.5"
mass: 25 mass: 25
layer:
- SmallImpassable
- Opaque
mask: mask:
- MobMask - MachineMask
layer:
- MachineLayer
- type: Construction - type: Construction
graph: Machine graph: Machine
node: machine node: machine

View File

@@ -18,15 +18,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5" bounds: "-0.25,-0.5,0.25,0.5"
mass: 25 mass: 25
layer:
- Impassable
- MobImpassable
- VaultImpassable
- Opaque
mask: mask:
- Impassable - MachineMask
- MobImpassable layer:
- VaultImpassable - MachineLayer
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Anchorable - type: Anchorable
@@ -71,15 +66,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5" bounds: "-0.25,-0.5,0.25,0.5"
mass: 25 mass: 25
layer:
- Impassable
- MobImpassable
- VaultImpassable
- Opaque
mask: mask:
- Impassable - MachineMask
- MobImpassable layer:
- VaultImpassable - MachineLayer
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Anchorable - type: Anchorable

View File

@@ -34,12 +34,9 @@
bounds: "-1.5,-1.5,1.5,1.5" bounds: "-1.5,-1.5,1.5,1.5"
mass: 500 mass: 500
mask: mask:
- Impassable - LargeMobMask
layer: layer:
- Opaque - WallLayer
- Impassable
- MobImpassable
- VaultImpassable
- type: Repairable - type: Repairable
fuelCost: 10 fuelCost: 10
doAfterDelay: 5 doAfterDelay: 5

View File

@@ -30,12 +30,9 @@
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 25 mass: 25
mask: mask:
- Impassable - MachineMask
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- type: Construction - type: Construction
graph: Machine graph: Machine
node: machine node: machine
@@ -119,12 +116,9 @@
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 25 mass: 25
mask: mask:
- Impassable - MachineMask
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- type: ResearchClient - type: ResearchClient
- type: Construction - type: Construction
graph: Machine graph: Machine

View File

@@ -21,11 +21,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5" bounds: "-0.25,-0.5,0.25,0.5"
mass: 25 mass: 25
layer:
- SmallImpassable
- Opaque
mask: mask:
- MobMask - MachineMask
layer:
- MachineLayer
- type: Construction - type: Construction
graph: Machine graph: Machine
node: machine node: machine

View File

@@ -27,10 +27,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.16,0.3,0.16" bounds: "-0.3,-0.16,0.3,0.16"
mass: 25 mass: 25
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - TabletopMachineMask
layer:
- TabletopMachineLayer
- type: Sprite - type: Sprite
netsync: false netsync: false
sprite: Structures/Machines/microwave.rsi sprite: Structures/Machines/microwave.rsi

View File

@@ -31,10 +31,10 @@
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.08,-0.35,0.15,0.25" bounds: "-0.08,-0.35,0.15,0.25"
layer:
- SmallImpassable
mask: mask:
- VaultImpassable - TabletopMachineMask
layer:
- TabletopMachineLayer
- type: Sprite - type: Sprite
netsync: false netsync: false
sprite: Structures/Machines/juicer.rsi sprite: Structures/Machines/juicer.rsi

View File

@@ -20,10 +20,7 @@
id: brrt id: brrt
hard: false hard: false
layer: layer:
- Opaque - FullTileMask
- Impassable
- MobImpassable
- VaultImpassable
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" bounds: "-0.49,-0.49,0.49,0.49"
@@ -33,6 +30,7 @@
- Impassable - Impassable
layer: layer:
- Opaque - Opaque
- BulletImpassable
- type: Transform - type: Transform
anchored: true anchored: true
noRot: false noRot: false

View File

@@ -19,9 +19,8 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.4,0.25,0.4" bounds: "-0.25,-0.4,0.25,0.4"
mass: 25 mass: 25
layer:
- MobMask
- Opaque
mask: mask:
- MobMask - MachineMask
layer:
- MachineLayer
- type: SeedExtractor - type: SeedExtractor

View File

@@ -47,5 +47,5 @@
bounds: "-0.45,-0.45,0.45,0.05" bounds: "-0.45,-0.45,0.45,0.05"
mass: 25 mass: 25
mask: mask:
- SmallImpassable - LowImpassable

View File

@@ -20,10 +20,9 @@
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 25 mass: 25
mask: mask:
- SmallImpassable - MachineMask
layer: layer:
- Opaque - MachineLayer
- MobImpassable
- type: TraitorDeathMatchRedemption - type: TraitorDeathMatchRedemption
placement: placement:
mode: AlignTileAny mode: AlignTileAny

View File

@@ -24,12 +24,9 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.45,0.25,0.45" bounds: "-0.25,-0.45,0.25,0.45"
mask: mask:
- Impassable - FullTileMask
- VaultImpassable
- SmallImpassable
layer: layer:
- Opaque - WallLayer
- MobImpassable
mass: 100 mass: 100
- type: Destructible - type: Destructible
thresholds: thresholds:

View File

@@ -1,6 +1,7 @@
- type: entity - type: entity
abstract: true abstract: true
id: GasPipeBase id: GasPipeBase
parent: BaseItem
name: pipe name: pipe
description: Holds gas. description: Holds gas.
placement: placement:
@@ -8,32 +9,6 @@
components: components:
- type: Item - type: Item
size: 10 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 - type: Transform
anchored: true anchored: true
- type: Damageable - type: Damageable
@@ -43,7 +18,6 @@
- type: PipeAppearance - type: PipeAppearance
- type: Anchorable - type: Anchorable
- type: Rotatable - type: Rotatable
- type: Pullable
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger: - trigger:

View File

@@ -17,15 +17,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.4,0.25,0.4" bounds: "-0.25,-0.4,0.25,0.4"
mass: 25 mass: 25
layer:
- Impassable
- MobImpassable
- VaultImpassable
- Opaque
mask: mask:
- Impassable - MachineMask
- MobImpassable layer:
- VaultImpassable - MachineLayer
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Anchorable - type: Anchorable

View File

@@ -16,6 +16,12 @@
- type: Physics - type: Physics
bodyType: Static bodyType: Static
- type: Fixtures - type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5"
mask:
- SubfloorMask
- type: Transform - type: Transform
anchored: true anchored: true
- type: Anchorable - type: Anchorable
@@ -60,13 +66,6 @@
drawdepth: ThickPipe drawdepth: ThickPipe
sprite: Structures/Piping/disposal.rsi sprite: Structures/Piping/disposal.rsi
state: pipe-b state: pipe-b
- type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5"
layer: [ Underplating ]
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: broken node: broken
@@ -87,13 +86,6 @@
- type: DisposalVisualizer - type: DisposalVisualizer
state_free: conpipe-s state_free: conpipe-s
state_anchored: pipe-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 - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: pipe node: pipe
@@ -120,13 +112,6 @@
interfaces: interfaces:
- key: enum.DisposalTaggerUiKey.Key - key: enum.DisposalTaggerUiKey.Key
type: DisposalTaggerBoundUserInterface type: DisposalTaggerBoundUserInterface
- type: Physics
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.5"
layer: [ Underplating ]
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: tagger node: tagger
@@ -147,13 +132,13 @@
- type: DisposalVisualizer - type: DisposalVisualizer
state_free: conpipe-t state_free: conpipe-t
state_anchored: pipe-t state_anchored: pipe-t
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.25,0.4" bounds: "-0.25,-0.5,0.25,0.4"
layer: [ Underplating ] mask:
- SubfloorMask
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: trunk node: trunk
@@ -186,13 +171,13 @@
interfaces: interfaces:
- key: enum.DisposalRouterUiKey.Key - key: enum.DisposalRouterUiKey.Key
type: DisposalRouterBoundUserInterface type: DisposalRouterBoundUserInterface
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.25,0.5" bounds: "-0.5,-0.5,0.25,0.5"
layer: [ Underplating ] mask:
- SubfloorMask
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: router node: router
@@ -218,13 +203,13 @@
state_anchored: pipe-j2s state_anchored: pipe-j2s
- type: Flippable - type: Flippable
mirrorEntity: DisposalRouter mirrorEntity: DisposalRouter
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.5,0.5" bounds: "-0.25,-0.5,0.5,0.5"
layer: [ Underplating ] mask:
- SubfloorMask
- type: entity - type: entity
id: DisposalJunction id: DisposalJunction
@@ -248,13 +233,13 @@
state_anchored: pipe-j1 state_anchored: pipe-j1
- type: Flippable - type: Flippable
mirrorEntity: DisposalJunctionFlipped mirrorEntity: DisposalJunctionFlipped
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.25,0.5" bounds: "-0.5,-0.5,0.25,0.5"
layer: [ Underplating ] mask:
- SubfloorMask
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: junction node: junction
@@ -280,13 +265,13 @@
state_anchored: pipe-j2 state_anchored: pipe-j2
- type: Flippable - type: Flippable
mirrorEntity: DisposalJunction mirrorEntity: DisposalJunction
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.5,0.5,0.5" bounds: "-0.25,-0.5,0.5,0.5"
layer: [ Underplating ] mask:
- SubfloorMask
- type: entity - type: entity
id: DisposalYJunction id: DisposalYJunction
@@ -308,13 +293,13 @@
- type: DisposalVisualizer - type: DisposalVisualizer
state_free: conpipe-y state_free: conpipe-y
state_anchored: pipe-y state_anchored: pipe-y
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.25" bounds: "-0.5,-0.5,0.5,0.25"
layer: [ Underplating ] mask:
- SubfloorMask
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: yJunction node: yJunction
@@ -335,13 +320,13 @@
- type: DisposalVisualizer - type: DisposalVisualizer
state_free: conpipe-c state_free: conpipe-c
state_anchored: pipe-c state_anchored: pipe-c
- type: Physics
- type: Fixtures - type: Fixtures
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.5,0.25,0.25" bounds: "-0.5,-0.5,0.25,0.25"
layer: [ Underplating ] mask:
- SubfloorMask
- type: Construction - type: Construction
graph: DisposalPipe graph: DisposalPipe
node: bend node: bend

View File

@@ -27,12 +27,9 @@
bounds: "-0.25,-0.4,0.25,0.4" bounds: "-0.25,-0.4,0.25,0.4"
mass: 30 mass: 30
mask: mask:
- Impassable - MachineMask
layer: layer:
- Opaque - MachineLayer
- SmallImpassable
- VaultImpassable
- MobImpassable
- type: Destructible - type: Destructible
thresholds: thresholds:
- trigger: - trigger:

View File

@@ -17,10 +17,9 @@
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 25 mass: 25
mask: mask:
- Opaque - MachineMask
- Impassable layer:
- MobImpassable - MachineLayer
- VaultImpassable
- type: Transform - type: Transform
anchored: true anchored: true
noRot: false noRot: false

View File

@@ -26,8 +26,8 @@
layer: [None] layer: [None]
mask: mask:
# Has to hit mobs, singularity, and singularity generator # Has to hit mobs, singularity, and singularity generator
- MobMask
- Opaque - Opaque
- FullTileMask
- type: ParticleProjectile - type: ParticleProjectile
- type: SinguloFood - type: SinguloFood
# Energy is setup by the PA particle fire function. # Energy is setup by the PA particle fire function.

View File

@@ -16,15 +16,10 @@
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45" bounds: "-0.45,-0.45,0.45,0.45"
mass: 25 mass: 25
layer:
- Impassable
- MobImpassable
- VaultImpassable
- Opaque
mask: mask:
- Impassable - MachineMask
- MobImpassable layer:
- VaultImpassable - MachineLayer
- type: Transform - type: Transform
anchored: true anchored: true
noRot: true noRot: true

Some files were not shown because too many files have changed in this diff Show More