Adds edge firelocks

This commit is contained in:
Víctor Aguilera Puerto
2020-09-08 15:20:58 +02:00
parent 95ba81fa32
commit 511147f299
24 changed files with 467 additions and 3 deletions

View File

@@ -88,7 +88,7 @@ namespace Content.Server.GameObjects.Components.Atmos
Owner.EntityManager.EventBus.SubscribeEvent<RotateEvent>(EventSource.Local, this, RotateEvent);
if(_fixAirBlockedDirectionInitialize)
RotateEvent(new RotateEvent(Owner, Angle.Zero, Owner.Transform.LocalRotation));
RotateEvent(new RotateEvent(Owner, Angle.South, Owner.Transform.LocalRotation));
UpdatePosition();
}

View File

@@ -84,6 +84,7 @@ namespace Content.Server.GameObjects.Components.Doors
private bool _isWeldedShut;
private bool _canWeldShut = true;
private bool _canCrush = true;
public override void ExposeData(ObjectSerializer serializer)
{
@@ -91,6 +92,7 @@ namespace Content.Server.GameObjects.Components.Doors
serializer.DataField(ref _occludes, "occludes", true);
serializer.DataField(ref _isWeldedShut, "welded", false);
serializer.DataField(ref _canCrush, "canCrush", true);
}
public override void OnRemove()
@@ -367,7 +369,7 @@ namespace Content.Server.GameObjects.Components.Doors
{
bool shouldCheckCrush = false;
if (Owner.TryGetComponent(out ICollidableComponent? collidable) && collidable.IsColliding(Vector2.Zero, false))
if (_canCrush && Owner.TryGetComponent(out ICollidableComponent? collidable) && collidable.IsColliding(Vector2.Zero, false))
{
if (Safety)
return false;
@@ -386,7 +388,7 @@ namespace Content.Server.GameObjects.Components.Doors
Timer.Spawn(CloseTimeOne, async () =>
{
if (shouldCheckCrush)
if (shouldCheckCrush && _canCrush)
{
CheckCrush();
}

View File

@@ -74,3 +74,35 @@
sprite: Constructible/Structures/Doors/firelock_glass.rsi
- type: Icon
sprite: Constructible/Structures/Doors/firelock_glass.rsi
- type: entity
id: FirelockEdge
parent: Firelock
name: firelock
prefix: south
components:
- type: Firelock
occludes: false
canCrush: false
- type: Occluder
enabled: false
- type: Sprite
sprite: Constructible/Structures/Doors/edge_door_hazard.rsi
- type: Icon
sprite: Constructible/Structures/Doors/edge_door_hazard.rsi
- type: Airtight
fixVacuum: true
airBlockedDirection:
- South
- type: Collidable
shapes:
- !type:PhysShapeAabb
bounds: "-0.49,-0.49,-0.2,0.49" # don't want this colliding with walls or they won't close
mask:
- MobImpassable
layer:
- Opaque
- Impassable
- MobImpassable
- VaultImpassable
- SmallImpassable

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,430 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA 3.0",
"copyright": "Taken from https://github.com/vgstation-coders/vgstation13/ at 38b65a605df7ae2907d6bf0d4aebc5faa1bbc561",
"states": [
{
"name": "alert_cold",
"directions": 4,
"delays": [
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
]
]
},
{
"name": "alert_hot",
"directions": 4,
"delays": [
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
]
]
},
{
"name": "bolted",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "closed",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "closed_unlit",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "closing",
"directions": 4,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
},
{
"name": "closing_unlit",
"directions": 4,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
},
{
"name": "deny",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "deny_unlit",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "locked",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "open",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "opening",
"directions": 4,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
},
{
"name": "opening_unlit",
"directions": 4,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
],
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
},
{
"name": "palert",
"directions": 4,
"delays": [
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
],
[
0.5,
0.5
]
]
},
{
"name": "panel_closing",
"directions": 1,
"delays": [
[
0.1,
0.1,
0.07,
0.07,
0.07,
0.07,
0.27
]
]
},
{
"name": "panel_open",
"directions": 1,
"delays": [
[
1.0
]
]
},
{
"name": "panel_opening",
"directions": 1,
"delays": [
[
0.2,
0.07,
0.07,
0.07,
0.07,
0.07,
0.2
]
]
},
{
"name": "welded",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "welded_open",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB