spray painter rework (#23287)

* refactor and add Department to PaintableAirlock, move it to server dir since its in namespace

* add departments to doors, cleanup

* add style -> departments mapping

* AirlockDepartmentsPrototype

* update shared spray stuff to have department

* name file the same as the class name

* department optional

* refactor spray painter system + send department

* fixy

* client

* no need to rewrite ActivateableUi

* pro ops

* the reckoning

* hiss

* .

* :trollface:

* add standard atmos colors to palette

* Update Content.Shared/SprayPainter/SharedSprayPainterSystem.cs

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
deltanedas
2024-02-01 22:30:46 +00:00
committed by GitHub
parent e36844de47
commit c49c78bafa
15 changed files with 424 additions and 306 deletions

View File

@@ -4,24 +4,31 @@
name: spray painter
description: A spray painter for painting airlocks and pipes.
components:
- type: Sprite
sprite: Objects/Tools/spray_painter.rsi
state: spray_painter
- type: Item
sprite: Objects/Tools/spray_painter.rsi
- type: UserInterface
interfaces:
- key: enum.SprayPainterUiKey.Key
type: SprayPainterBoundUserInterface
- type: SprayPainter
colorPalette:
red: '#FF1212FF'
yellow: '#B3A234FF'
brown: '#947507FF'
green: '#3AB334FF'
cyan: '#03FCD3FF'
blue: '#0335FCFF'
white: '#FFFFFFFF'
black: '#333333FF'
- type: StaticPrice
price: 40
- type: Sprite
sprite: Objects/Tools/spray_painter.rsi
state: spray_painter
- type: Item
sprite: Objects/Tools/spray_painter.rsi
- type: ActivatableUI
key: enum.SprayPainterUiKey.Key
- type: UserInterface
interfaces:
- key: enum.SprayPainterUiKey.Key
type: SprayPainterBoundUserInterface
- type: SprayPainter
colorPalette:
red: '#FF1212FF'
yellow: '#B3A234FF'
brown: '#947507FF'
green: '#3AB334FF'
cyan: '#03FCD3FF'
blue: '#0335FCFF'
white: '#FFFFFFFF'
black: '#333333FF'
# standard atmos pipes
waste: '#990000'
distro: '#0055cc'
air: '#03fcd3'
mix: '#947507'
- type: StaticPrice
price: 40

View File

@@ -13,9 +13,11 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/engineering.rsi
- type: PaintableAirlock
department: Engineering
- type: entity
parent: Airlock
parent: AirlockEngineering
id: AirlockAtmospherics
suffix: Atmospherics
components:
@@ -29,6 +31,8 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/cargo.rsi
- type: PaintableAirlock
department: Cargo
- type: entity
parent: Airlock
@@ -37,9 +41,11 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/medical.rsi
- type: PaintableAirlock
department: Medical
- type: entity
parent: Airlock
parent: AirlockMedical
id: AirlockVirology
suffix: Virology
components:
@@ -47,12 +53,9 @@
sprite: Structures/Doors/Airlocks/Standard/virology.rsi
- type: entity
parent: Airlock
parent: AirlockMedical
id: AirlockChemistry
suffix: Chemistry
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/medical.rsi
- type: entity
parent: Airlock
@@ -61,6 +64,8 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/science.rsi
- type: PaintableAirlock
department: Science
- type: entity
parent: Airlock
@@ -71,6 +76,8 @@
sprite: Structures/Doors/Airlocks/Standard/command.rsi
- type: WiresPanelSecurity
securityLevel: medSecurity
- type: PaintableAirlock
department: Command
- type: entity
parent: Airlock
@@ -79,6 +86,8 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/security.rsi
- type: PaintableAirlock
department: Security
- type: entity
parent: Airlock
@@ -89,7 +98,7 @@
sprite: Structures/Doors/Airlocks/Standard/maint.rsi
- type: entity
parent: Airlock
parent: AirlockSecurity # if you get syndie door somehow it counts as sec
id: AirlockSyndicate
suffix: Syndicate
components:
@@ -97,7 +106,7 @@
sprite: Structures/Doors/Airlocks/Standard/syndicate.rsi
- type: entity
parent: Airlock
parent: AirlockCargo
id: AirlockMining
suffix: Mining(Salvage)
components:
@@ -105,14 +114,12 @@
sprite: Structures/Doors/Airlocks/Standard/mining.rsi
- type: entity
parent: Airlock
parent: AirlockCommand # if you get centcom door somehow it counts as command, also inherit panel
id: AirlockCentralCommand
suffix: Central Command
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Standard/centcomm.rsi
- type: WiresPanelSecurity
securityLevel: medSecurity
- type: entity
parent: Airlock
@@ -181,7 +188,7 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/engineering.rsi
- type: PaintableAirlock
group: Glass
department: Engineering
- type: entity
parent: AirlockGlass
@@ -190,18 +197,14 @@
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/maint.rsi
- type: PaintableAirlock
group: Glass
- type: entity
parent: AirlockGlass
parent: AirlockEngineeringGlass
id: AirlockAtmosphericsGlass
suffix: Atmospherics
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/atmospherics.rsi
- type: PaintableAirlock
group: Glass
- type: entity
parent: AirlockGlass
@@ -211,17 +214,7 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/cargo.rsi
- type: PaintableAirlock
group: Glass
- type: entity
parent: AirlockGlass
id: AirlockChemistryGlass
suffix: Chemistry
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/medical.rsi
- type: PaintableAirlock
group: Glass
department: Cargo
- type: entity
parent: AirlockGlass
@@ -231,17 +224,20 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/medical.rsi
- type: PaintableAirlock
group: Glass
department: Medical
- type: entity
parent: AirlockGlass
parent: AirlockMedicalGlass
id: AirlockChemistryGlass
suffix: Chemistry
- type: entity
parent: AirlockMedicalGlass
id: AirlockVirologyGlass
suffix: Virology
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/virology.rsi
- type: PaintableAirlock
group: Glass
- type: entity
parent: AirlockGlass
@@ -251,7 +247,7 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/science.rsi
- type: PaintableAirlock
group: Glass
department: Science
- type: entity
parent: AirlockGlass
@@ -261,7 +257,7 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/command.rsi
- type: PaintableAirlock
group: Glass
department: Command
- type: WiresPanelSecurity
securityLevel: medSecurity
@@ -273,20 +269,18 @@
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/security.rsi
- type: PaintableAirlock
group: Glass
department: Security
- type: entity
parent: AirlockGlass
parent: AirlockSecurityGlass # see standard
id: AirlockSyndicateGlass
suffix: Syndicate
components:
- type: Sprite
sprite: Structures/Doors/Airlocks/Glass/syndicate.rsi
- type: PaintableAirlock
group: Glass
- type: entity
parent: AirlockGlass
parent: AirlockCargoGlass
id: AirlockMiningGlass
suffix: Mining(Salvage)
components:
@@ -294,7 +288,7 @@
sprite: Structures/Doors/Airlocks/Glass/mining.rsi
- type: entity
parent: AirlockGlass
parent: AirlockCommandGlass # see standard
id: AirlockCentralCommandGlass
suffix: Central Command
components:
@@ -302,4 +296,3 @@
sprite: Structures/Doors/Airlocks/Glass/centcomm.rsi
- type: WiresPanelSecurity
securityLevel: medSecurity

View File

@@ -134,6 +134,7 @@
mode: NoSprite
- type: PaintableAirlock
group: Standard
department: Civilian
- type: AccessReader
- type: StaticPrice
price: 150

View File

@@ -18,6 +18,7 @@
sprite: Structures/Doors/Airlocks/Standard/external.rsi
- type: PaintableAirlock
group: External
department: null
- type: entity
parent: AirlockExternal

View File

@@ -64,6 +64,7 @@
- ForceNoFixRotations
- type: PaintableAirlock
group: Shuttle
department: null
- type: Construction
graph: AirlockShuttle
node: airlock

View File

@@ -58,3 +58,19 @@
iconPriority: 40
stylePaths:
shuttle: Structures/Doors/Airlocks/Glass/shuttle.rsi
# fun
- type: airlockDepartments
id: Departments
departments:
atmospherics: Engineering
basic: Civilian
cargo: Cargo
command: Command
engineering: Engineering
freezer: Civilian
maintenance: Civilian
medical: Medical
science: Science
security: Security
virology: Medical