using Robust.Shared.Serialization; using Robust.Shared.Audio; using Robust.Shared.Prototypes; namespace Content.Shared._Sunrise.CartridgeLoader.Cartridges; /// /// Компонент фото-картриджа для КПК /// [RegisterComponent] public sealed partial class PhotoCartridgeComponent : Component { /// /// Галерея фотографий пользователя (PhotoId -> PhotoMetadata) /// [ViewVariables] public Dictionary PhotoGallery = new(); /// /// Звук срабатывания затвора /// [DataField] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/_Sunrise/camera_shot.ogg"); /// /// Эффект вспышки /// [DataField] public EntProtoId FlashEffect = "PhotoFlashEffect"; /// /// Включена ли вспышка (пользовательская настройка) /// [DataField] public bool FlashEnabled = true; } /// /// Метаданные фотографии в галерее /// [Serializable, NetSerializable] public sealed class PhotoMetadata { /// /// Уникальный идентификатор фотографии (GUID) /// public string PhotoId { get; set; } /// /// Путь к сетевому ресурсу изображения (например, "/NetTextures/Messenger/photo_123.png") /// public string ImagePath { get; set; } /// /// Время создания фотографии (относительно начала раунда) /// public TimeSpan Timestamp { get; set; } public PhotoMetadata(string photoId, string imagePath, TimeSpan timestamp) { PhotoId = photoId; ImagePath = imagePath; Timestamp = timestamp; } }