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);
// 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);
});
}

View File

@@ -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);
/// <summary>
/// Ask for the pathfinder to gimme somethin

View File

@@ -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?

View File

@@ -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<EntityUid, List<Fixture>> _fixtureRemoveQueue = new();

View File

@@ -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
});
}

View File

@@ -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<EntityPrototype>))]
private string? _trayPrototypeId;
@@ -69,7 +71,7 @@ namespace Content.Server.Morgue.Components
{
if (!EntitySystem.Get<SharedInteractionSystem>().InRangeUnobstructed(Owner,
_entMan.GetComponent<TransformComponent>(Owner).Coordinates.Offset(_entMan.GetComponent<TransformComponent>(Owner).LocalRotation.GetCardinalDir()),
collisionMask: CollisionGroup.Impassable | CollisionGroup.VaultImpassable
collisionMask: TrayCanOpenMask
))
{
if (!silent)

View File

@@ -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);

View File

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

View File

@@ -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;
/// <summary>
/// Defined collision groups for the physics system.
/// </summary>
[Flags, PublicAPI]
[FlagsFor(typeof(CollisionLayer)), FlagsFor(typeof(CollisionMask))]
public enum CollisionGroup
{
/// <summary>
/// Defined collision groups for the physics system.
/// </summary>
[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
}

View File

@@ -17,11 +17,11 @@ namespace Content.Shared.Standing
public bool Standing { get; set; } = true;
/// <summary>
/// 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.
/// </summary>
[DataField("vaultImpassableFixtures")]
public List<string> VaultImpassableFixtures = new();
[DataField("changedFixtures")]
public List<string> ChangedFixtures = new();
public override ComponentState GetComponentState()
{

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@
bounds: "-0.35,-0.35,0.35,0.35"
mass: 5
mask:
- GhostImpassable
- GhostImpassable
- type: Body
template: AGhostTemplate
preset: HumanPreset

View File

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

View File

@@ -16,7 +16,7 @@
fixtures:
- shape:
!type:PhysShapeCircle
radius: 0.35
radius: 0.35
mass: 5
mask:
- GhostImpassable

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

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
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

View File

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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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
state: destroyed

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
powerLoad: 300

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

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