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

@@ -1,11 +1,24 @@
using Content.Shared.Roles;
using Content.Shared.SprayPainter.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Server.SprayPainter;
namespace Content.Shared.SprayPainter.Components;
[RegisterComponent]
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class PaintableAirlockComponent : Component
{
[DataField("group", customTypeSerializer:typeof(PrototypeIdSerializer<AirlockGroupPrototype>))]
public string Group = default!;
/// <summary>
/// Group of styles this airlock can be painted with, e.g. glass, standard or external.
/// </summary>
[DataField(required: true), AutoNetworkedField]
public ProtoId<AirlockGroupPrototype> Group = string.Empty;
/// <summary>
/// Department this airlock is painted as, or none.
/// Must be specified in prototypes for turf war to work.
/// To better catch any mistakes, you need to explicitly state a non-styled airlock has a null department.
/// </summary>
[DataField(required: true), AutoNetworkedField]
public ProtoId<DepartmentPrototype>? Department;
}