* mechs * interaction relay * atmos handling * fuck around with interaction events SPAGHETTI CODE OH MY GOD * more sprites and whatever the hell * more mech shit * more shit for equipment * starting equipment (for nukie mechs and such) * equipment cycling * starting with some of the ui * a fat chunk of ui prototyping * done tinkering with ui * a bunch of ui stuff and what have yous * cleaning up grabber and state handling * make the ui actually functional + watch me port a million icons I swear i'll prune the sprites later blease * start on construction * construction yo mamma * remove some unused files * fix a silly * make the graph sane * make it actually constructible. * print the boards as well, bozo * rebalance part prices * eject action also i appease the russians by remembering to localize * Punch Shit * make mech integrity and repairs work * Make the UI more based STOMP STOMP STOMP STOMP * make equipment even more based * batteries and other such delights * make the ui look pimpin af * make the construction mega based * UI but so epic * equipment * some sweat tweaks * damage rebalancing * restructure tech * fix some shit * mechs inherit access * make icons actually use sprite specifiers * TRAILING COMMAA!!!!! * fix a mild indentation sin * undo this change because it isn't needed * actually fix this * secret webeditting shhhh * place this tech here * comments * foo
51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using Content.Shared.Storage.Components;
|
|
using Content.Shared.Tag;
|
|
using Content.Shared.Tools;
|
|
using Robust.Shared.Containers;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
|
|
|
|
namespace Content.Server.Mech.Components;
|
|
|
|
/// <summary>
|
|
/// A component used to create a mech chassis
|
|
/// after the correct parts have been placed inside
|
|
/// of it.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// The actual visualization of the parts being inserted is
|
|
/// done via <see cref="ItemMapperComponent"/>
|
|
/// </remarks>
|
|
[RegisterComponent]
|
|
public sealed class MechAssemblyComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// The parts needed to be placed within the assembly,
|
|
/// stored as a tag and a bool tracking whether or not
|
|
/// they're present.
|
|
/// </summary>
|
|
[DataField("requiredParts", required: true, customTypeSerializer: typeof(PrototypeIdDictionarySerializer<bool, TagPrototype>))]
|
|
public Dictionary<string, bool> RequiredParts = new();
|
|
|
|
/// <summary>
|
|
/// The prototype spawned when the assembly is finished
|
|
/// </summary>
|
|
[DataField("finishedPrototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
|
public string FinishedPrototype = default!;
|
|
|
|
/// <summary>
|
|
/// The container that stores all of the parts when
|
|
/// they're being assembled.
|
|
/// </summary>
|
|
[ViewVariables]
|
|
public Container PartsContainer = default!;
|
|
|
|
/// <summary>
|
|
/// The quality of tool needed to remove all the parts
|
|
/// from the parts container.
|
|
/// </summary>
|
|
[DataField("qualityNeeded", customTypeSerializer: typeof(PrototypeIdSerializer<ToolQualityPrototype>))]
|
|
public string QualityNeeded = "Prying";
|
|
}
|