Universal weldable component (#7955)

* Weldable component for door

* Content update

* Examine message

* Universal visualizer

* Small fix

* Entity storage

* Content

* Fixed test

* Update Content.Shared/Storage/SharedStorageComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Fixed loc string

* Add public API to change welding time

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
Alex Evgrashin
2022-05-09 08:51:52 +03:00
committed by GitHub
parent 02de328d9c
commit df49c2fd57
29 changed files with 367 additions and 215 deletions

View File

@@ -153,7 +153,6 @@
netsync: false
- type: EntityStorage
Capacity: 8
CanWeldShut: false
- type: PlaceableSurface
placeCentered: true
- type: Item

View File

@@ -39,7 +39,6 @@
mask:
- Impassable
- type: BodyBagEntityStorage
CanWeldShut: false
Capacity: 1
IsCollidableWhenOpen: true
closeSound:

View File

@@ -19,7 +19,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -42,7 +42,7 @@
state: artifact_container_icon
- type: ArtifactStorage
Capacity: 1
CanWeldShut: true
- type: Weldable
- type: SuppressArtifactContainer
- type: PlaceableSurface
- type: Damageable

View File

@@ -15,7 +15,7 @@
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
@@ -48,6 +48,9 @@
path: /Audio/Machines/airlock_close.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Weldable
fuel: 3
time: 3
- type: Airlock
- type: Appearance
visuals:

View File

@@ -16,7 +16,7 @@
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
@@ -71,7 +71,7 @@
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]

View File

@@ -36,7 +36,7 @@
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
@@ -73,6 +73,9 @@
path: /Audio/Machines/airlock_close.ogg
denySound:
path: /Audio/Machines/airlock_deny.ogg
- type: Weldable
fuel: 3
time: 3
- type: Firelock
- type: Appearance
visuals:

View File

@@ -30,7 +30,6 @@
- type: Door
bumpOpen: false
clickOpen: true
weldable: false
canCrush: false
closeTimeOne: 0.2
closeTimeTwo: 0.6
@@ -89,7 +88,6 @@
- type: Door
bumpOpen: false
clickOpen: true
weldable: false
closeTimeOne: 0.2
closeTimeTwo: 0.6
openTimeOne: 0.6

View File

@@ -41,6 +41,9 @@
path: /Audio/Machines/blastdoor.ogg
closeSound:
path: /Audio/Machines/blastdoor.ogg
- type: Weldable
fuel: 3
time: 3
- type: Appearance
visuals:
- type: AirlockVisualizer

View File

@@ -30,7 +30,7 @@
shader: unshaded
map: ["enum.DoorVisualLayers.BaseUnlit"]
- state: welded
map: ["enum.DoorVisualLayers.BaseWelded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: bolted_unlit
shader: unshaded
map: ["enum.DoorVisualLayers.BaseBolted"]
@@ -75,7 +75,6 @@
safety: false
- type: Door
canCrush: false
weldable: false
board: DoorElectronics
openSound:
path: /Audio/Machines/windoor_open.ogg
@@ -123,7 +122,7 @@
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
- state: welded
map: [ "enum.DoorVisualLayers.BaseWelded" ]
map: [ "enum.WeldableLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]

View File

@@ -18,7 +18,7 @@
shader: unshaded
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Destructible
thresholds:
- trigger:

View File

@@ -17,7 +17,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: MovedByPressure
- type: DamageOnHighSpeedImpact
damage:
@@ -41,6 +41,7 @@
- MobImpassable
- SmallImpassable
- type: EntityStorage
- type: Weldable
- type: PlaceableSurface
placeCentered: true
- type: Damageable

View File

@@ -16,7 +16,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: InteractionOutline
- type: Physics
- type: Fixtures
@@ -34,7 +34,7 @@
- SmallImpassable
- type: EntityStorage
Capacity: 500
CanWeldShut: true
- type: Weldable
- type: PlaceableSurface
- type: Damageable
damageContainer: Inorganic
@@ -79,7 +79,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: InteractionOutline
- type: Physics
- type: Fixtures
@@ -97,7 +97,7 @@
- SmallImpassable
- type: EntityStorage
Capacity: 500
CanWeldShut: true
- type: Weldable
- type: PlaceableSurface
- type: Damageable
damageContainer: Inorganic

View File

@@ -11,7 +11,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/generic.rsi
state: crate_icon
@@ -38,7 +38,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/plastic.rsi
state: plasticcrate_icon
@@ -64,7 +64,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/freezer.rsi
state: freezer_icon
@@ -90,7 +90,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/hydro.rsi
state: hydrocrate_icon
@@ -116,7 +116,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/medical.rsi
state: medicalcrate_icon
@@ -143,7 +143,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/radiation.rsi
state: radiationcrate_icon
@@ -169,7 +169,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/o2.rsi
state: o2crate_icon
@@ -195,7 +195,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/electricalcrate.rsi
state: electricalcrate_icon
@@ -221,7 +221,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/engicrate.rsi
state: engicrate_icon
@@ -247,7 +247,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/scicrate.rsi
state: scicrate_icon
@@ -273,7 +273,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- type: Icon
sprite: Structures/Storage/Crates/surgerycrate.rsi
state: surgerycrate_icon
@@ -304,7 +304,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -333,7 +333,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -362,7 +362,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -390,7 +390,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -419,7 +419,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -448,7 +448,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -476,7 +476,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -505,7 +505,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -560,7 +560,7 @@
map: ["enum.StorageVisualLayers.Door"]
- state: welded
visible: false
map: ["enum.StorageVisualLayers.Welded"]
map: ["enum.WeldableLayers.BaseWelded"]
- state: locked
map: ["enum.StorageVisualLayers.Lock"]
shader: unshaded
@@ -580,7 +580,6 @@
components:
- type: EntityStorage
Capacity: 500
CanWeldShut: false
- type: Sprite
sprite: Structures/Storage/Crates/livestock.rsi
layers:

View File

@@ -34,7 +34,6 @@
- VaultImpassable
- SmallImpassable
- type: MorgueEntityStorage
CanWeldShut: false
IsCollidableWhenOpen: true
Capacity: 1
closeSound:
@@ -116,7 +115,6 @@
- VaultImpassable
- SmallImpassable
- type: CrematoriumEntityStorage
CanWeldShut: false
IsCollidableWhenOpen: true
Capacity: 1
closeSound: