Files
Radicade/Server/Rooms/RoomData.cs
T
2026-10-16 23:33:13 -07:00

93 lines
3.4 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using RadicadeServer.RecNet.Enums;
using RadicadeServer.RecNet.Enums.Players.Avatar;
using RadicadeServer.RecNet.Enums.Rooms;
using RadicadeServer.RecNet.Enums.Store;
using RadicadeServer.Radicade.Gifts.Enums;
namespace RadicadeServer.RecNet.Rooms
{
public class RoomData
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long RoomId { get; set; }
public string Tags { get; set; } = string.Empty;
public bool IsDorm { get; set; } = false;
public int MaxPlayers { get; set; } = 10;
public MaxPlayerMode MaxPlayerCalculationMode { get; set; } = MaxPlayerMode.OnlyEntrySubrooms;
public bool CloningAllowed { get; set; } = false;
public bool DisableMicAutoMute { get; set; } = false;
public bool DisableRoomComments { get; set; } = false;
public bool EncryptVoiceChat { get; set; } = false;
public string Name { get; set; } = "";
public string? Description { get; set; } = "";
public string ImageName { get; set; } = "default.png";
public WarningMask WarningMask { get; set; }
public string? CustomWarning { get; set; } = null;
public long CreatorAccountId { get; set; } = 1;
public RoomState State { get; set; } = RoomState.Active;
public Accessibility Accessibility { get; set; } = Accessibility.Private;
public bool SupportsLevelVoting { get; set; } = false;
public bool IsRRO { get; set; } = false;
public bool IsDeveloperOwned { get; set; } = false;
public bool SupportsScreens { get; set; } = true;
public bool SupportsWalkVR { get; set; } = true;
public bool SupportsTeleportVR { get; set; } = true;
public bool SupportsVRLow { get; set; } = true;
public bool SupportsQuest2 { get; set; } = true;
public bool SupportsMobile { get; set; } = true;
public bool SupportsJuniors { get; set; } = true;
public int MinLevel { get; set; } = 0;
public DateTime CreatedAt { get; set; } = DateTime.MinValue;
[JsonIgnore] public DateTime PublishedAt { get; set; } = DateTime.Now;
[JsonIgnore] public bool WasPublished = false;
public string loadScreen { get; set; } = "[]";
public int Version { get; set; } = 1;
public bool JoinGiftEnabled { get; set; } = false;
public bool JoinGiftOncePerPlayer { get; set; } = true;
public int JoinGiftVersion { get; set; } = 1;
public string JoinGiftTitle { get; set; } = "Room Visit Gift";
public string JoinGiftMessage { get; set; } = "Thanks for visiting!";
public string JoinGiftAvatarItem { get; set; } = "";
public string JoinGiftEquipmentItem { get; set; } = "";
public string JoinGiftConsumableItem { get; set; } = "";
public int JoinGiftCurrencyAmount { get; set; } = 0;
public CurrencyType JoinGiftCurrencyType { get; set; } = CurrencyType.RecCenterTokens;
public int JoinGiftXp { get; set; } = 0;
public GiftContext JoinGiftContext { get; set; } = GiftContext.Game_Drop;
public Rarity JoinGiftRarity { get; set; } = Rarity.Common;
public AvatarItemType JoinGiftAvatarItemType { get; set; } = AvatarItemType.Outfit;
public string JoinGiftEquipmentModificationGuid { get; set; } = "";
/// <summary>
/// The account the join box is from, which the client shows on the box and reads off
/// RecNet's Gift.FromPlayerId. Zero means the room names no sender, as it did before this
/// was configurable.
/// </summary>
public long JoinGiftFromPlayerId { get; set; } = 0;
}
}