Make BatteryBarrelComponent use item slots. (#5591)

This commit is contained in:
Leon Friedrich
2021-12-05 16:23:47 +13:00
committed by GitHub
parent f96b8a8b0f
commit e8b2d0a844
11 changed files with 184 additions and 334 deletions

View File

@@ -1,6 +1,7 @@
using Content.Shared.Sound;
using Content.Shared.Whitelist;
using Robust.Shared.Analyzers;
using Robust.Shared.Audio;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.Prototypes;
@@ -81,6 +82,12 @@ namespace Content.Shared.Containers.ItemSlots
public SoundSpecifier? EjectSound;
// maybe default to /Audio/Machines/id_swipe.ogg?
/// <summary>
/// Options used for playing the insert/eject sounds.
/// </summary>
[DataField("soundOptions")]
public AudioParams SoundOptions = AudioParams.Default;
/// <summary>
/// The name of this item slot. This will be shown to the user in the verb menu.
/// </summary>
@@ -116,6 +123,18 @@ namespace Content.Shared.Containers.ItemSlots
[DataField("ejectOnInteract")]
public bool EjectOnInteract = false;
/// <summary>
/// If true, and if this slot is attached to an item, then it will attempt to eject slot when to the slot is
/// used in the user's hands.
/// </summary>
/// <remarks>
/// Desirable for things like ranged weapons ('Z' to eject), but not desirable for others (e.g., PDA uses
/// 'Z' to open UI). Unlike <see cref="EjectOnInteract"/>, this will not make any changes to the context
/// menu, nor will it disable alt-click interactions.
/// </remarks>
[DataField("ejectOnUse")]
public bool EjectOnUse = false;
/// <summary>
/// Override the insert verb text. Defaults to [insert category] -> [item-name]. If not null, the verb will
/// not be given a category.