/// <summary> /// Turns into a state where you can receive specific mail. /// </summary> /// <param name="avatarAddress"></param> /// <param name="mailId"></param> public static void AddNewAttachmentMail(Address avatarAddress, Guid mailId) { var modifier = new AvatarAttachmentMailNewSetter(mailId); LocalLayer.Instance.Add(avatarAddress, modifier); if (!TryGetLoadedAvatarState( avatarAddress, out var outAvatarState, out _, out var isCurrentAvatarState) ) { return; } outAvatarState = modifier.Modify(outAvatarState); if (!isCurrentAvatarState) { return; } ReactiveAvatarState.MailBox.SetValueAndForceNotify(outAvatarState.mailBox); }
/// <summary> /// Regress the logic of the `AddNewAttachmentMail()` method. /// </summary> /// <param name="avatarAddress"></param> /// <param name="mailId"></param> /// <param name="resetState"></param> public static void RemoveNewAttachmentMail( Address avatarAddress, Guid mailId, bool resetState = true) { var modifier = new AvatarAttachmentMailNewSetter(mailId); LocalLayer.Instance.Remove(avatarAddress, modifier); if (!resetState) { return; } TryResetLoadedAvatarState( avatarAddress, out var outAvatarState, out var isCurrentAvatarState); }